CRTC Source Code Collection Volume 1 (UK) (Face A) (1997) [EDUCATIF].dsk
HexaDumpAscii only
000000:  45 58 54 45 4E 44 45 44 20 43 50 43 20 44 53 4B    EXTENDED CPC DSK
000010:  20 46 69 6C 65 0D 0A 44 69 73 6B 2D 49 6E 66 6F     File..Disk-Info
000020:  0D 0A 53 41 4D 64 69 73 6B 31 39 30 31 32 32 00    ..SAMdisk190122.
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 13 00 00 00    ................
000060:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
000070:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
000080:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
000090:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
0000A0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
0000B0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
0000C0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
0000D0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
0000E0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
0000F0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
000100:  54 72 61 63 6B 2D 49 6E 66 6F 0D 0A 00 00 00 00    Track-Info......
000110:  00 00 01 00 02 09 4E E5 00 00 C4 02 00 00 00 02    ......N.........
000120:  00 00 C9 02 00 00 00 02 00 00 C5 02 00 00 00 02    ................
000130:  00 00 C1 02 00 00 00 02 00 00 C6 02 00 00 00 02    ................
000140:  00 00 C2 02 00 00 00 02 00 00 C7 02 00 00 00 02    ................
000150:  00 00 C3 02 00 00 00 02 00 00 C8 02 00 00 00 02    ................
000160:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
000170:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
000180:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
000190:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
0001A0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
0001B0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
0001C0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
0001D0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
0001E0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
0001F0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
000200:  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:  09 09 09 3B 20 7C 0D 0A 09 6C 64 20 64 2C 28 68    ...; |...ld d,(h
000410:  6C 29 3A 20 65 78 20 64 65 2C 68 6C 3A 20 6C 64    l): ex de,hl: ld
000420:  20 64 65 2C 26 43 30 30 30 3A 20 63 61 6C 6C 20     de,&C000: call 
000430:  26 42 43 37 37 09 3B 4F 70 65 6E 20 66 69 6C 65    &BC77.;Open file
000440:  0D 0A 09 6C 64 20 68 6C 2C 63 68 72 73 65 74 3A    ...ld hl,chrset:
000450:  20 63 61 6C 6C 20 26 42 43 38 33 3A 20 63 61 6C     call &BC83: cal
000460:  6C 20 26 42 43 37 41 09 09 3B 52 65 61 64 20 66    l &BC7A..;Read f
000470:  69 6C 65 20 69 6E 20 61 6E 64 20 63 6C 6F 73 65    ile in and close
000480:  0D 0A 0D 0A 2E 63 68 72 6D 6F 64 09 6C 64 20 68    .....chrmod.ld h
000490:  6C 2C 63 68 72 73 65 74 2B 26 33 38 30 3A 20 6C    l,chrset+&380: l
0004A0:  64 20 62 63 2C 37 3A 20 6C 64 20 28 68 6C 29 2C    d bc,7: ld (hl),
0004B0:  30 09 09 3B 50 61 74 63 68 20 66 6F 72 20 73 6F    0..;Patch for so
0004C0:  66 74 20 73 70 61 63 65 0D 0A 09 6C 64 20 64 65    ft space...ld de
0004D0:  2C 63 68 72 73 65 74 2B 26 33 38 31 3A 20 6C 64    ,chrset+&381: ld
0004E0:  69 72 3A 20 72 65 74 09 09 09 3B 20 7C 0D 0A 0D    ir: ret...; |...
0004F0:  0A 09 3B 2A 2A 2A 20 52 53 58 09 7C 44 49 53 50    ..;*** RSX.|DISP
000500:  4C 41 59 2C 40 6B 65 79 24 0D 0A 0D 0A 2E 64 69    LAY,@key$.....di
000510:  73 70 5F 69 09 63 70 20 31 3A 20 72 65 74 20 6E    sp_i.cp 1: ret n
000520:  7A 09 09 09 09 09 3B 47 65 74 20 73 74 72 69 6E    z.....;Get strin
000530:  67 20 61 64 64 72 65 73 73 0D 0A 09 6C 64 20 6C    g address...ld l
000540:  2C 28 69 78 29 3A 20 6C 64 20 68 2C 28 69 78 2B    ,(ix): ld h,(ix+
000550:  31 29 09 09 09 09 3B 20 7C 0D 0A 09 6C 64 20 61    1)....; |...ld a
000560:  2C 28 68 6C 29 3A 20 69 6E 63 20 68 6C 3A 20 63    ,(hl): inc hl: c
000570:  70 20 31 3A 20 72 65 74 20 6E 7A 09 09 09 3B 4D    p 1: ret nz...;M
000580:  75 73 74 20 62 65 20 6F 6E 65 20 63 68 61 72 20    ust be one char 
000590:  6C 6F 6E 67 0D 0A 09 6C 64 20 65 2C 28 68 6C 29    long...ld e,(hl)
0005A0:  3A 20 69 6E 63 20 68 6C 09 09 09 09 3B 20 7C 0D    : inc hl....; |.
0005B0:  0A 09 6C 64 20 64 2C 28 68 6C 29 3A 20 6C 64 20    ..ld d,(hl): ld 
0005C0:  28 72 65 74 6B 2B 31 29 2C 64 65 09 09 09 3B 20    (retk+1),de...; 
0005D0:  7C 0D 0A 0D 0A 09 6C 64 20 61 2C 32 3A 20 63 61    |.....ld a,2: ca
0005E0:  6C 6C 20 26 42 43 30 45 0D 0A 09 6C 64 20 68 6C    ll &BC0E...ld hl
0005F0:  2C 26 33 30 30 30 3A 20 6C 64 20 28 63 72 74 63    ,&3000: ld (crtc
000600:  00 52 45 41 44 20 20 20 20 4D 45 20 00 00 00 00    .READ    ME ....
000610:  00 00 0A 00 00 F0 01 00 66 03 00 00 00 00 00 00    ........f.......
000620:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
000630:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
000640:  66 03 00 1B 04 6E 20 63 75 72 73 6F 72 20 75 70    f....n cursor up
000650:  2F 64 6F 77 6E 20 61 6E 64 20 50 2C 20 0D 8A 77    /down and P, ..w
000660:  68 69 63 68 20 70 72 69 6E 74 73 29 2C 20 69 74    hich prints), it
000670:  20 77 69 6C 6C 20 62 65 20 72 65 74 75 72 6E 65     will be returne
000680:  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                    
000690:  20 20 20 20 20 20 E2 54 68 65 20 45 75 72 6F 57          .The EuroW
0006A0:  41 43 43 49 20 74 65 78 74 20 72 65 61 64 65 72    ACCI text reader
0006B0:  E2 0D 0A 0D 0A 54 6F 20 69 6E 69 74 69 61 6C 69    .....To initiali
0006C0:  73 65 20 74 68 65 20 52 53 58 73 2C 20 74 79 70    se the RSXs, typ
0006D0:  65 0D 0A 0D 0A E9 20 20 20 20 20 20 20 20 4D 45    e.....        ME
0006E0:  4D 4F 52 59 20 26 33 46 46 46 0D 0A 20 20 20 20    MORY &3FFF..    
0006F0:  20 20 20 20 4C 4F 41 44 20 22 74 65 78 74 72 65        LOAD "textre
000700:  61 64 2E 62 69 6E 22 0D 0A 20 20 20 20 20 20 20    ad.bin"..       
000710:  20 43 41 4C 4C 20 26 38 30 30 30 E9 0D 0A 0D 0A     CALL &8000.....
000720:  59 6F 75 20 77 69 6C 6C 20 74 68 65 6E 20 68 61    You will then ha
000730:  76 65 20 74 68 72 65 65 20 62 72 61 6E 64 90 20    ve three brand. 
000740:  6E 65 77 90 20 63 6F 6D 6D 61 6E 64 73 90 20 72    new. commands. r
000750:  65 61 64 79 20 66 6F 72 20 61 63 74 69 6F 6E 2C    eady for action,
000760:  20 61 73 20 69 74 20 0D 8A 77 65 72 65 2E 0D 0A     as it ..were...
000770:  0D 0A E2 7C 41 52 54 2E 4C 4F 41 44 2C 22 66 69    ...|ART.LOAD,"fi
000780:  6C 65 6E 61 6D 65 22 E2 0D 0A 4C 6F 61 64 20 61    lename"...Load a
000790:  20 73 74 61 6E 64 61 72 64 20 50 72 6F 74 65 78     standard Protex
0007A0:  74 20 66 69 6C 65 20 69 6E 74 6F 20 6D 65 6D 6F    t file into memo
0007B0:  72 79 20 2D 20 6D 61 78 69 6D 75 6D 20 6C 65 6E    ry - maximum len
0007C0:  67 74 68 20 31 36 6B 2E 0D 0A 0D 0A E2 7C 43 48    gth 16k......|CH
0007D0:  52 2E 4C 4F 41 44 2C 22 66 69 6C 65 6E 61 6D 65    R.LOAD,"filename
0007E0:  22 E2 0D 0A 4C 6F 61 64 20 61 20 63 68 61 72 61    "...Load a chara
0007F0:  63 74 65 72 20 73 65 74 90 20 69 6E 74 6F 90 20    cter set. into. 
000800:  00 54 45 58 54 52 45 41 44 44 4F 43 00 00 00 08    .TEXTREADDOC....
000810:  02 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
000820:  00 54 45 58 54 52 45 41 44 53 52 43 00 00 00 3B    .TEXTREADSRC...;
000830:  03 04 05 06 07 08 09 0A 00 00 00 00 00 00 00 00    ................
000840:  00 49 4D 41 47 45 20 20 20 53 52 43 00 00 00 41    .IMAGE   SRC...A
000850:  0B 0C 0D 0E 0F 10 11 12 13 00 00 00 00 00 00 00    ................
000860:  00 4F 52 47 41 4E 49 53 45 53 52 43 00 00 00 80    .ORGANISESRC....
000870:  14 15 16 17 18 19 1A 1B 1C 1D 1E 1F 20 21 22 23    ............ !"#
000880:  00 4F 52 47 41 4E 49 53 45 53 52 43 01 00 00 80    .ORGANISESRC....
000890:  24 25 26 27 28 29 2A 2B 2C 2D 2E 2F 30 31 32 33    $%&'()*+,-./0123
0008A0:  00 4F 52 47 41 4E 49 53 45 53 52 43 02 00 00 06    .ORGANISESRC....
0008B0:  34 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    4...............
0008C0:  00 54 4F 4F 4C 4B 49 54 20 53 52 43 00 00 00 80    .TOOLKIT SRC....
0008D0:  35 36 37 38 39 3A 3B 3C 3D 3E 3F 40 41 42 43 44    56789:;<=>?@ABCD
0008E0:  00 54 4F 4F 4C 4B 49 54 20 53 52 43 01 00 00 4A    .TOOLKIT SRC...J
0008F0:  45 46 47 48 49 4A 4B 4C 4D 4E 00 00 00 00 00 00    EFGHIJKLMN......
000900:  00 53 44 4F 53 31 20 20 20 53 52 43 00 00 00 80    .SDOS1   SRC....
000910:  4F 50 51 52 53 54 55 56 57 58 59 5A 5B 5C 5D 5E    OPQRSTUVWXYZ[\]^
000920:  00 53 44 4F 53 31 20 20 20 53 52 43 01 00 00 17    .SDOS1   SRC....
000930:  5F 60 61 00 00 00 00 00 00 00 00 00 00 00 00 00    _`a.............
000940:  E5 54 41 4D 53 49 4E 20 20 42 41 4B 00 00 00 68    .TAMSIN  BAK...h
000950:  62 63 64 65 66 67 68 69 6A 6B 6C 6D 6E 00 00 00    bcdefghijklmn...
000960:  00 50 4C 55 53 38 42 49 54 53 52 43 00 00 00 0A    .PLUS8BITSRC....
000970:  6F 70 00 00 00 00 00 00 00 00 00 00 00 00 00 00    op..............
000980:  00 53 50 45 4C 4C 20 20 20 53 52 43 00 00 00 80    .SPELL   SRC....
000990:  71 72 73 74 75 76 77 78 79 7A 7B 7C 7D 7E 7F 80    qrstuvwxyz{|}~..
0009A0:  00 53 50 45 4C 4C 20 20 20 53 52 43 01 00 00 80    .SPELL   SRC....
0009B0:  81 82 83 84 85 86 87 88 89 8A 8B 8C 8D 8E 8F 90    ................
0009C0:  00 53 50 45 4C 4C 20 20 20 53 52 43 02 00 00 0F    .SPELL   SRC....
0009D0:  91 92 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
0009E0:  00 54 41 4D 53 49 4E 20 20 53 52 43 00 00 00 67    .TAMSIN  SRC...g
0009F0:  93 94 95 A3 A4 A5 A6 A7 A8 A9 AA AB AC 00 00 00    ...£............
000A00:  6D 65 6D 6F 72 79 2E 90 20 54 6F 90 20 72 65 74    memory.. To. ret
000A10:  61 69 6E 20 34 36 34 20 63 6F 6D 70 61 74 69 62    ain 464 compatib
000A20:  69 6C 69 74 79 2C 20 74 68 65 20 0D 8A 62 65 73    ility, the ..bes
000A30:  74 20 77 61 79 20 74 6F 20 75 73 65 20 74 68 65    t way to use the
000A40:  20 6C 61 73 74 20 74 77 6F 20 63 6F 6D 6D 61 6E     last two comman
000A50:  64 73 20 69 73 20 E9 61 24 3D 22 66 69 6C 65 6E    ds is .a$="filen
000A60:  61 6D 65 22 3A 7C 41 52 54 2E 4C 4F 41 44 2C 40    ame":|ART.LOAD,@
000A70:  61 24 E9 2E 0D 0A 0D 0A E2 61 24 3D 22 20 22 3A    a$.......a$=" ":
000A80:  7C 44 49 53 50 4C 41 59 2C 40 61 24 E2 0D 0A 44    |DISPLAY,@a$...D
000A90:  69 73 70 6C 61 79 73 20 74 68 65 20 74 65 78 74    isplays the text
000AA0:  20 66 69 6C 65 20 6F 6E 20 73 63 72 65 65 6E 3A     file on screen:
000AB0:  90 20 63 75 72 73 6F 72 90 20 75 70 20 61 6E 64    . cursor. up and
000AC0:  20 64 6F 77 6E 20 74 6F 20 73 63 72 6F 6C 6C 2E     down to scroll.
000AD0:  20 4D 61 6B 65 20 0D 8A 73 75 72 65 20 E9 53 50     Make ..sure .SP
000AE0:  45 45 44 20 4B 45 59 20 32 35 2C 31 E9 20 69 73    EED KEY 25,1. is
000AF0:  20 73 65 74 20 66 6F 72 20 62 65 73 74 20 72 65     set for best re
000B00:  73 75 6C 74 73 2E 0D 0A 20 20 50 72 6F 74 65 78    sults...  Protex
000B10:  74 20 62 6F 6C 64 20 61 6E 64 20 69 74 61 6C 69    t bold and itali
000B20:  63 20 63 6F 6D 6D 61 6E 64 73 20 61 72 65 90 20    c commands are. 
000B30:  75 6E 64 65 72 73 74 6F 6F 64 2C 20 62 75 74 20    understood, but 
000B40:  6E 6F 74 68 69 6E 67 20 65 6C 73 65 20 2D 20 0D    nothing else - .
000B50:  8A 6E 6F 74 20 65 76 65 6E 20 74 61 62 73 2E 20    .not even tabs. 
000B60:  49 66 20 61 20 6B 65 79 20 69 73 90 20 70 72 65    If a key is. pre
000B70:  73 73 65 64 90 20 28 6F 74 68 65 72 20 74 68 61    ssed. (other tha
000B80:  6E 20 63 75 72 73 6F 72 20 75 70 2F 64 6F 77 6E    n cursor up/down
000B90:  20 61 6E 64 20 50 2C 20 0D 8A 77 68 69 63 68 20     and P, ..which 
000BA0:  70 72 69 6E 74 73 29 2C 20 69 74 20 77 69 6C 6C    prints), it will
000BB0:  20 62 65 20 72 65 74 75 72 6E 65 64 20 69 6E 20     be returned in 
000BC0:  61 24 2E 0D 0A 0D 0A 43 6F 64 65 20 28 63 29 20    a$.....Code (c) 
000BD0:  31 39 39 37 20 43 52 54 43 2F 53 79 73 74 65 6D    1997 CRTC/System
000BE0:  65 20 44 2E 0D 0A 1A 6E 65 64 20 69 6E 20 61 24    e D....ned in a$
000BF0:  2E 0D 0A 0D 0A 43 6F 64 65 20 28 63 29 20 31 39    .....Code (c) 19
000C00:  00 2D 52 45 41 44 20 20 20 4D 45 20 00 00 00 13    .-READ   ME ....
000C10:  96 A1 A2 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
000C20:  00 4D 41 43 42 55 47 53 20 53 52 43 00 00 00 4F    .MACBUGS SRC...O
000C30:  97 98 99 9A 9B 9C 9D 9E 9F A0 00 00 00 00 00 00    ................
000C40:  E5 2D 52 45 41 44 20 20 20 42 41 4B 00 00 00 10    .-READ   BAK....
000C50:  A1 A2 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
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:  0D 0A 09 3B 45 75 72 6F 57 41 43 43 49 20 74 65    ...;EuroWACCI te
000E10:  78 74 20 72 65 61 64 65 72 0D 0A 09 3B 28 63 29    xt reader...;(c)
000E20:  20 31 39 39 37 20 43 52 54 43 2F 53 79 73 74 65     1997 CRTC/Syste
000E30:  6D 65 20 44 0D 0A 0D 0A 09 6F 72 67 20 26 38 30    me D.....org &80
000E40:  30 30 0D 0A 09 77 72 69 74 65 20 22 74 65 78 74    00...write "text
000E50:  72 65 61 64 2E 62 69 6E 22 0D 0A 09 6E 6F 6C 69    read.bin"...noli
000E60:  73 74 0D 0A 0D 0A 09 3B 2A 2A 2A 20 49 4E 49 54    st.....;*** INIT
000E70:  09 49 6E 69 74 69 61 6C 69 73 65 20 52 53 58 73    .Initialise RSXs
000E80:  0D 0A 0D 0A 2E 69 6E 69 72 73 78 09 6C 64 20 61    .....inirsx.ld a
000E90:  2C 26 43 39 3A 20 6C 64 20 28 69 6E 69 72 73 78    ,&C9: ld (inirsx
000EA0:  29 2C 61 0D 0A 09 6C 64 20 62 63 2C 63 6F 6D 5F    ),a...ld bc,com_
000EB0:  74 0D 0A 09 6C 64 20 68 6C 2C 77 6B 73 70 0D 0A    t...ld hl,wksp..
000EC0:  09 63 61 6C 6C 20 26 42 43 44 31 0D 0A 0D 0A 09    .call &BCD1.....
000ED0:  63 61 6C 6C 20 26 42 39 30 36 09 09 09 09 09 3B    call &B906.....;
000EE0:  43 6F 70 79 20 52 4F 4D 20 63 68 61 72 61 63 74    Copy ROM charact
000EF0:  65 72 73 0D 0A 09 6C 64 20 68 6C 2C 26 33 39 30    ers...ld hl,&390
000F00:  30 3A 20 6C 64 20 64 65 2C 63 68 72 73 65 74 09    0: ld de,chrset.
000F10:  09 09 3B 20 7C 0D 0A 09 6C 64 20 62 63 2C 26 30    ..; |...ld bc,&0
000F20:  37 30 30 3A 20 6C 64 69 72 09 09 09 09 3B 20 7C    700: ldir....; |
000F30:  0D 0A 09 63 61 6C 6C 20 26 42 39 30 39 3A 20 63    ...call &B909: c
000F40:  61 6C 6C 20 63 68 72 6D 6F 64 3A 20 72 65 74 09    all chrmod: ret.
000F50:  09 09 3B 20 7C 0D 0A 0D 0A 2E 63 6F 6D 5F 74 09    ..; |.....com_t.
000F60:  64 77 20 6E 61 6D 65 5F 74 0D 0A 09 6A 70 20 61    dw name_t...jp a
000F70:  72 74 6C 5F 69 0D 0A 09 6A 70 20 63 68 72 6C 5F    rtl_i...jp chrl_
000F80:  69 0D 0A 09 6A 70 20 64 69 73 70 5F 69 0D 0A 0D    i...jp disp_i...
000F90:  0A 2E 6E 61 6D 65 5F 74 09 73 74 72 20 22 41 52    ..name_t.str "AR
000FA0:  54 2E 4C 4F 41 44 22 0D 0A 09 73 74 72 20 22 43    T.LOAD"...str "C
000FB0:  48 52 2E 4C 4F 41 44 22 0D 0A 09 73 74 72 20 22    HR.LOAD"...str "
000FC0:  44 49 53 50 4C 41 59 22 0D 0A 09 64 62 20 30 0D    DISPLAY"...db 0.
000FD0:  0A 0D 0A 2E 77 6B 73 70 09 64 73 20 34 0D 0A 0D    ....wksp.ds 4...
000FE0:  0A 09 3B 2A 2A 2A 20 52 53 58 09 7C 41 52 54 2E    ..;*** RSX.|ART.
000FF0:  4C 4F 41 44 2C 22 66 69 6C 65 6E 61 6D 65 22 0D    LOAD,"filename".
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:  0A 0D 0A 2E 61 72 74 6C 5F 69 09 63 70 20 31 3A    ....artl_i.cp 1:
001210:  20 72 65 74 20 6E 7A 0D 0A 09 6C 64 20 6C 2C 28     ret nz...ld l,(
001220:  69 78 29 3A 20 6C 64 20 68 2C 28 69 78 2B 31 29    ix): ld h,(ix+1)
001230:  09 09 09 09 3B 47 65 74 20 66 69 6C 65 6E 61 6D    ....;Get filenam
001240:  65 0D 0A 09 6C 64 20 62 2C 28 68 6C 29 3A 20 69    e...ld b,(hl): i
001250:  6E 63 20 68 6C 09 09 09 09 3B 20 7C 0D 0A 09 6C    nc hl....; |...l
001260:  64 20 65 2C 28 68 6C 29 3A 20 69 6E 63 20 68 6C    d e,(hl): inc hl
001270:  09 09 09 09 3B 20 7C 0D 0A 09 6C 64 20 64 2C 28    ....; |...ld d,(
001280:  68 6C 29 3A 20 65 78 20 64 65 2C 68 6C 3A 20 6C    hl): ex de,hl: l
001290:  64 20 64 65 2C 26 43 30 30 30 3A 20 63 61 6C 6C    d de,&C000: call
0012A0:  20 26 42 43 37 37 09 3B 4F 70 65 6E 20 66 69 6C     &BC77.;Open fil
0012B0:  65 0D 0A 09 70 75 73 68 20 68 6C 3A 20 70 6F 70    e...push hl: pop
0012C0:  20 69 78 09 09 09 09 09 3B 46 69 64 64 6C 65 20     ix.....;Fiddle 
0012D0:  68 65 61 64 65 72 0D 0A 09 6C 64 20 28 69 78 2B    header...ld (ix+
0012E0:  36 35 29 2C 32 35 35 3A 20 6C 64 20 28 69 78 2B    65),255: ld (ix+
0012F0:  36 36 29 2C 30 09 09 09 3B 20 7C 0D 0A 09 6C 64    66),0...; |...ld
001300:  20 68 6C 2C 26 34 30 30 32 3A 20 63 61 6C 6C 20     hl,&4002: call 
001310:  26 42 43 38 33 3A 20 63 61 6C 6C 20 26 42 43 37    &BC83: call &BC7
001320:  41 09 09 3B 52 65 61 64 20 66 69 6C 65 20 69 6E    A..;Read file in
001330:  20 61 6E 64 20 63 6C 6F 73 65 0D 0A 09 6C 64 20     and close...ld 
001340:  68 6C 2C 26 30 41 30 44 3A 20 6C 64 20 28 26 34    hl,&0A0D: ld (&4
001350:  30 30 30 29 2C 68 6C 3A 20 72 65 74 09 09 09 3B    000),hl: ret...;
001360:  46 61 6B 65 20 43 52 2F 4C 46 0D 0A 0D 0A 0D 0A    Fake CR/LF......
001370:  09 3B 2A 2A 2A 20 52 53 58 09 7C 43 48 52 2E 4C    .;*** RSX.|CHR.L
001380:  4F 41 44 2C 22 66 69 6C 65 6E 61 6D 65 22 0D 0A    OAD,"filename"..
001390:  0D 0A 2E 63 68 72 6C 5F 69 09 63 70 20 31 3A 20    ...chrl_i.cp 1: 
0013A0:  72 65 74 20 6E 7A 0D 0A 09 6C 64 20 6C 2C 28 69    ret nz...ld l,(i
0013B0:  78 29 3A 20 6C 64 20 68 2C 28 69 78 2B 31 29 09    x): ld h,(ix+1).
0013C0:  09 09 09 3B 47 65 74 20 66 69 6C 65 6E 61 6D 65    ...;Get filename
0013D0:  0D 0A 09 6C 64 20 62 2C 28 68 6C 29 3A 20 69 6E    ...ld b,(hl): in
0013E0:  63 20 68 6C 09 09 09 09 3B 20 7C 0D 0A 09 6C 64    c hl....; |...ld
0013F0:  20 65 2C 28 68 6C 29 3A 20 69 6E 63 20 68 6C 09     e,(hl): inc hl.
001400:  54 72 61 63 6B 2D 49 6E 66 6F 0D 0A 00 00 00 00    Track-Info......
001410:  01 00 01 00 02 09 4E E5 01 00 C7 02 00 00 00 02    ......N.........
001420:  01 00 C3 02 00 00 00 02 01 00 C8 02 00 00 00 02    ................
001430:  01 00 C4 02 00 00 00 02 01 00 C9 02 00 00 00 02    ................
001440:  01 00 C5 02 00 00 00 02 01 00 C1 02 00 00 00 02    ................
001450:  01 00 C6 02 00 00 00 02 01 00 C2 02 00 00 00 02    ................
001460:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
001470:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
001480:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
001490:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
0014A0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
0014B0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
0014C0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
0014D0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
0014E0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
0014F0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
001500:  09 3B 20 7C 0D 0A 2E 63 68 62 6F 6C 64 09 6C 64    .; |...chbold.ld
001510:  20 61 2C 69 3A 20 78 6F 72 20 32 3A 20 6C 64 20     a,i: xor 2: ld 
001520:  69 2C 61 3A 20 6A 72 20 6C 69 6E 65 6C 70 09 09    i,a: jr linelp..
001530:  3B 20 7C 0D 0A 0D 0A 2E 65 6F 6C 69 6E 65 09 69    ; |.....eoline.i
001540:  6E 63 20 69 78 09 09 09 09 09 09 3B 53 6B 69 70    nc ix......;Skip
001550:  20 4C 46 0D 0A 2E 77 69 70 65 6C 70 09 64 62 20     LF...wipelp.db 
001560:  26 46 44 3A 20 6C 64 20 61 2C 68 3A 20 63 70 20    &FD: ld a,h: cp 
001570:  38 30 3A 20 72 65 74 20 6E 63 09 09 09 3B 52 65    80: ret nc...;Re
001580:  74 75 72 6E 20 69 66 20 61 6C 6C 20 38 30 20 64    turn if all 80 d
001590:  6F 6E 65 0D 0A 09 6C 64 20 62 2C 33 32 3A 20 63    one...ld b,32: c
0015A0:  61 6C 6C 20 63 68 61 72 3A 20 64 62 20 26 46 44    all char: db &FD
0015B0:  3A 20 69 6E 63 20 68 3A 20 6A 72 20 77 69 70 65    : inc h: jr wipe
0015C0:  6C 70 09 3B 20 7C 20 77 69 70 65 20 72 65 73 74    lp.; | wipe rest
0015D0:  20 6F 66 20 6C 69 6E 65 0D 0A 0D 0A 0D 0A 09 3B     of line.......;
0015E0:  2D 2D 2D 20 73 75 62 72 09 43 68 61 72 61 63 74    --- subr.Charact
0015F0:  65 72 20 70 72 69 6E 74 0D 0A 09 3B 09 09 4F 6E    er print...;..On
001600:  20 65 6E 74 72 79 2C 20 41 20 63 6F 6E 74 61 69     entry, A contai
001610:  6E 73 20 41 53 43 49 49 20 63 6F 64 65 2C 20 44    ns ASCII code, D
001620:  45 20 73 63 72 65 65 6E 20 61 64 64 72 65 73 73    E screen address
001630:  0D 0A 0D 0A 2E 63 68 61 72 09 70 75 73 68 20 64    .....char.push d
001640:  65 0D 0A 09 20 6C 64 20 6C 2C 62 3A 20 6C 64 20    e... ld l,b: ld 
001650:  68 2C 30 3A 20 61 64 64 20 68 6C 2C 68 6C 3A 20    h,0: add hl,hl: 
001660:  61 64 64 20 68 6C 2C 68 6C 3A 20 61 64 64 20 68    add hl,hl: add h
001670:  6C 2C 68 6C 0D 0A 09 20 6C 64 20 62 63 2C 63 68    l,hl... ld bc,ch
001680:  72 73 65 74 2D 32 35 36 3A 20 61 64 64 20 68 6C    rset-256: add hl
001690:  2C 62 63 3A 20 6C 64 20 63 2C 38 0D 0A 09 20 6C    ,bc: ld c,8... l
0016A0:  64 20 61 2C 28 68 6C 29 3A 20 6C 64 20 28 64 65    d a,(hl): ld (de
0016B0:  29 2C 61 3A 20 6C 64 20 61 2C 64 3A 20 61 64 64    ),a: ld a,d: add
0016C0:  20 63 3A 20 6C 64 20 64 2C 61 3A 20 69 6E 63 20     c: ld d,a: inc 
0016D0:  68 6C 0D 0A 09 20 6C 64 20 61 2C 28 68 6C 29 3A    hl... ld a,(hl):
0016E0:  20 6C 64 20 28 64 65 29 2C 61 3A 20 6C 64 20 61     ld (de),a: ld a
0016F0:  2C 64 3A 20 61 64 64 20 63 3A 20 6C 64 20 64 2C    ,d: add c: ld d,
001700:  28 69 78 29 09 09 09 09 3B 20 7C 0D 0A 09 63 70    (ix)....; |...cp
001710:  20 26 45 32 3A 20 6A 72 20 7A 2C 73 63 62 6F 6C     &E2: jr z,scbol
001720:  64 09 09 09 09 3B 20 7C 0D 0A 09 63 70 20 26 45    d....; |...cp &E
001730:  39 3A 20 6A 72 20 7A 2C 73 63 69 74 61 6C 09 09    9: jr z,scital..
001740:  09 09 3B 20 7C 0D 0A 09 63 70 20 26 30 44 3A 20    ..; |...cp &0D: 
001750:  6A 72 20 7A 2C 73 63 72 5F 70 6C 20 20 3A 20 6A    jr z,scr_pl  : j
001760:  72 20 73 63 72 5F 6C 70 09 09 3B 20 7C 0D 0A 2E    r scr_lp..; |...
001770:  73 63 62 6F 6C 64 09 6C 64 20 61 2C 69 3A 20 78    scbold.ld a,i: x
001780:  6F 72 20 32 3A 20 6C 64 20 69 2C 61 3A 20 6A 72    or 2: ld i,a: jr
001790:  20 73 63 72 5F 6C 70 09 09 3B 20 7C 0D 0A 2E 73     scr_lp..; |...s
0017A0:  63 69 74 61 6C 09 6C 64 20 61 2C 69 3A 20 78 6F    cital.ld a,i: xo
0017B0:  72 20 31 3A 20 6C 64 20 69 2C 61 3A 20 6A 72 20    r 1: ld i,a: jr 
0017C0:  73 63 72 5F 6C 70 09 09 3B 20 7C 0D 0A 2E 73 63    scr_lp..; |...sc
0017D0:  72 5F 70 6C 09 69 6E 63 20 69 78 3A 20 69 6E 63    r_pl.inc ix: inc
0017E0:  20 69 78 3A 20 6C 64 20 28 6C 69 6E 65 74 62 29     ix: ld (linetb)
0017F0:  2C 69 78 09 09 09 3B 20 7C 0D 0A 09 6C 64 20 61    ,ix...; |...ld a
001800:  2C 69 3A 20 6C 64 20 28 6C 69 6E 65 74 62 2B 34    ,i: ld (linetb+4
001810:  29 2C 61 09 09 09 09 3B 20 7C 0D 0A 0D 0A 09 6C    ),a....; |.....l
001820:  64 20 68 6C 2C 28 6C 69 6E 65 74 62 2B 37 29 3A    d hl,(linetb+7):
001830:  20 6C 64 20 64 65 2C 2D 38 30 3A 20 61 64 64 20     ld de,-80: add 
001840:  68 6C 2C 64 65 09 09 3B 46 69 6E 64 20 73 63 72    hl,de..;Find scr
001850:  65 65 6E 20 61 64 64 72 65 73 73 0D 0A 09 62 69    een address...bi
001860:  74 20 36 2C 68 3A 20 6A 72 20 6E 7A 2C 73 63 72    t 6,h: jr nz,scr
001870:  5F 73 61 3A 20 6C 64 20 64 65 2C 26 38 30 30 3A    _sa: ld de,&800:
001880:  20 61 64 64 20 68 6C 2C 64 65 09 3B 20 7C 0D 0A     add hl,de.; |..
001890:  2E 73 63 72 5F 73 61 09 6C 64 20 28 6C 69 6E 65    .scr_sa.ld (line
0018A0:  74 62 2B 32 29 2C 68 6C 09 09 09 09 3B 20 7C 0D    tb+2),hl....; |.
0018B0:  0A 0D 0A 09 6C 64 20 69 78 2C 28 6C 69 6E 65 74    ....ld ix,(linet
0018C0:  62 2B 30 29 09 09 09 09 3B 50 72 69 6E 74 20 6C    b+0)....;Print l
0018D0:  69 6E 65 0D 0A 09 6C 64 20 64 65 2C 28 6C 69 6E    ine...ld de,(lin
0018E0:  65 74 62 2B 32 29 09 09 09 09 3B 20 7C 0D 0A 09    etb+2)....; |...
0018F0:  6C 64 20 61 20 2C 28 6C 69 6E 65 74 62 2B 34 29    ld a ,(linetb+4)
001900:  61 3A 20 69 6E 63 20 68 6C 0D 0A 09 20 6C 64 20    a: inc hl... ld 
001910:  61 2C 28 68 6C 29 3A 20 6C 64 20 28 64 65 29 2C    a,(hl): ld (de),
001920:  61 3A 20 6C 64 20 61 2C 64 3A 20 61 64 64 20 63    a: ld a,d: add c
001930:  3A 20 6C 64 20 64 2C 61 3A 20 69 6E 63 20 68 6C    : ld d,a: inc hl
001940:  0D 0A 09 20 6C 64 20 61 2C 28 68 6C 29 3A 20 6C    ... ld a,(hl): l
001950:  64 20 28 64 65 29 2C 61 3A 20 6C 64 20 61 2C 64    d (de),a: ld a,d
001960:  3A 20 61 64 64 20 63 3A 20 6C 64 20 64 2C 61 3A    : add c: ld d,a:
001970:  20 69 6E 63 20 68 6C 0D 0A 2E 63 68 61 72 5F 63     inc hl...char_c
001980:  09 20 6C 64 20 61 2C 28 68 6C 29 3A 20 6C 64 20    . ld a,(hl): ld 
001990:  28 64 65 29 2C 61 3A 20 6C 64 20 61 2C 64 3A 20    (de),a: ld a,d: 
0019A0:  61 64 64 20 63 3A 20 6C 64 20 64 2C 61 3A 20 69    add c: ld d,a: i
0019B0:  6E 63 20 68 6C 0D 0A 09 20 6C 64 20 61 2C 28 68    nc hl... ld a,(h
0019C0:  6C 29 3A 20 6C 64 20 28 64 65 29 2C 61 3A 20 6C    l): ld (de),a: l
0019D0:  64 20 61 2C 64 3A 20 61 64 64 20 63 3A 20 6C 64    d a,d: add c: ld
0019E0:  20 64 2C 61 3A 20 69 6E 63 20 68 6C 0D 0A 09 20     d,a: inc hl... 
0019F0:  6C 64 20 61 2C 28 68 6C 29 3A 20 6C 64 20 28 64    ld a,(hl): ld (d
001A00:  65 29 2C 61 3A 20 6C 64 20 61 2C 64 3A 20 61 64    e),a: ld a,d: ad
001A10:  64 20 63 3A 20 6C 64 20 64 2C 61 3A 20 69 6E 63    d c: ld d,a: inc
001A20:  20 68 6C 0D 0A 09 20 6C 64 20 61 2C 28 68 6C 29     hl... ld a,(hl)
001A30:  3A 20 6C 64 20 28 64 65 29 2C 61 0D 0A 09 70 6F    : ld (de),a...po
001A40:  70 20 64 65 3A 20 69 6E 63 20 64 65 3A 20 72 65    p de: inc de: re
001A50:  73 20 33 2C 64 3A 20 6C 64 20 61 2C 32 35 35 3A    s 3,d: ld a,255:
001A60:  20 72 65 74 0D 0A 0D 0A 2E 63 68 61 72 5F 69 09     ret.....char_i.
001A70:  70 75 73 68 20 64 65 0D 0A 09 20 6C 64 20 6C 2C    push de... ld l,
001A80:  62 3A 20 6C 64 20 68 2C 30 3A 20 61 64 64 20 68    b: ld h,0: add h
001A90:  6C 2C 68 6C 3A 20 61 64 64 20 68 6C 2C 68 6C 3A    l,hl: add hl,hl:
001AA0:  20 61 64 64 20 68 6C 2C 68 6C 0D 0A 09 20 6C 64     add hl,hl... ld
001AB0:  20 62 63 2C 63 68 72 73 65 74 2D 32 35 36 3A 20     bc,chrset-256: 
001AC0:  61 64 64 20 68 6C 2C 62 63 3A 20 6C 64 20 63 2C    add hl,bc: ld c,
001AD0:  38 0D 0A 09 20 6C 64 20 61 2C 28 68 6C 29 3A 20    8... ld a,(hl): 
001AE0:  72 72 61 3A 20 6C 64 20 28 64 65 29 2C 61 3A 20    rra: ld (de),a: 
001AF0:  6C 64 20 61 2C 64 3A 20 61 64 64 20 63 3A 20 6C    ld a,d: add c: l
001B00:  3A 20 6C 64 20 69 2C 61 3A 20 63 61 6C 6C 20 6C    : ld i,a: call l
001B10:  69 6E 65 3A 20 6A 70 20 64 69 73 70 6C 70 09 3B    ine: jp displp.;
001B20:  20 7C 0D 0A 0D 0A 09 3B 2B 2B 2B 20 73 65 63 74     |.....;+++ sect
001B30:  09 53 63 72 6F 6C 6C 20 64 6F 77 6E 20 6F 6E 65    .Scroll down one
001B40:  20 6C 69 6E 65 0D 0A 0D 0A 2E 73 63 72 5F 64 6E     line.....scr_dn
001B50:  09 6C 64 20 68 6C 2C 28 6C 69 6E 65 74 62 2B 31    .ld hl,(linetb+1
001B60:  32 35 29 3A 20 6C 64 20 61 2C 28 68 6C 29 3A 63    25): ld a,(hl):c
001B70:  70 20 32 36 3A 6A 70 20 7A 2C 64 69 73 70 6C 70    p 26:jp z,displp
001B80:  09 3B 45 6E 64 20 6F 66 20 66 69 6C 65 3F 0D 0A    .;End of file?..
001B90:  0D 0A 09 6C 64 20 68 6C 2C 6C 69 6E 65 74 62 2B    ...ld hl,linetb+
001BA0:  35 3A 20 6C 64 20 62 63 2C 31 32 35 09 09 09 3B    5: ld bc,125...;
001BB0:  4D 6F 76 65 20 74 61 62 6C 65 0D 0A 09 6C 64 20    Move table...ld 
001BC0:  64 65 2C 6C 69 6E 65 74 62 20 20 3A 20 6C 64 69    de,linetb  : ldi
001BD0:  72 09 09 09 09 3B 20 7C 0D 0A 0D 0A 09 6C 64 20    r....; |.....ld 
001BE0:  68 6C 2C 28 63 72 74 63 29 3A 20 6C 64 20 64 65    hl,(crtc): ld de
001BF0:  2C 34 30 3A 20 61 64 64 20 68 6C 2C 64 65 3A 20    ,40: add hl,de: 
001C00:  72 65 73 20 32 2C 68 09 3B 53 63 72 6F 6C 6C 20    res 2,h.;Scroll 
001C10:  64 6F 77 6E 0D 0A 09 6C 64 20 28 63 72 74 63 29    down...ld (crtc)
001C20:  2C 68 6C 09 09 09 09 09 3B 20 7C 0D 0A 0D 0A 09    ,hl.....; |.....
001C30:  6C 64 20 69 78 2C 28 6C 69 6E 65 74 62 2B 31 32    ld ix,(linetb+12
001C40:  30 29 09 09 09 09 3B 50 72 69 6E 74 20 6E 65 78    0)....;Print nex
001C50:  74 20 6C 69 6E 65 0D 0A 09 6C 64 20 64 65 2C 28    t line...ld de,(
001C60:  6C 69 6E 65 74 62 2B 31 32 32 29 09 09 09 09 3B    linetb+122)....;
001C70:  20 7C 0D 0A 09 6C 64 20 61 20 2C 28 6C 69 6E 65     |...ld a ,(line
001C80:  74 62 2B 31 32 34 29 3A 20 6C 64 20 69 2C 61 3A    tb+124): ld i,a:
001C90:  20 63 61 6C 6C 20 6C 69 6E 65 3A 20 6C 64 20 61     call line: ld a
001CA0:  2C 69 09 3B 20 7C 0D 0A 09 6C 64 20 28 6C 69 6E    ,i.; |...ld (lin
001CB0:  65 74 62 2B 31 32 35 29 2C 69 78 09 09 09 09 3B    etb+125),ix....;
001CC0:  53 74 6F 72 65 20 6E 65 77 20 65 6E 64 20 76 61    Store new end va
001CD0:  6C 75 65 73 0D 0A 09 6C 64 20 28 6C 69 6E 65 74    lues...ld (linet
001CE0:  62 2B 31 32 37 29 2C 64 65 09 09 09 09 3B 20 7C    b+127),de....; |
001CF0:  0D 0A 09 6C 64 20 28 6C 69 6E 65 74 62 2B 31 32    ...ld (linetb+12
001D00:  64 20 64 2C 61 3A 20 69 6E 63 20 68 6C 0D 0A 09    d d,a: inc hl...
001D10:  20 6C 64 20 61 2C 28 68 6C 29 3A 20 72 72 61 3A     ld a,(hl): rra:
001D20:  20 6C 64 20 28 64 65 29 2C 61 3A 20 6C 64 20 61     ld (de),a: ld a
001D30:  2C 64 3A 20 61 64 64 20 63 3A 20 6C 64 20 64 2C    ,d: add c: ld d,
001D40:  61 3A 20 69 6E 63 20 68 6C 0D 0A 09 20 6C 64 20    a: inc hl... ld 
001D50:  61 2C 28 68 6C 29 3A 20 72 72 61 3A 20 6C 64 20    a,(hl): rra: ld 
001D60:  28 64 65 29 2C 61 3A 20 6C 64 20 61 2C 64 3A 20    (de),a: ld a,d: 
001D70:  61 64 64 20 63 3A 20 6C 64 20 64 2C 61 3A 20 69    add c: ld d,a: i
001D80:  6E 63 20 68 6C 0D 0A 09 20 6C 64 20 61 2C 28 68    nc hl... ld a,(h
001D90:  6C 29 3A 20 72 72 61 3A 20 6C 64 20 28 64 65 29    l): rra: ld (de)
001DA0:  2C 61 3A 20 6C 64 20 61 2C 64 3A 20 61 64 64 20    ,a: ld a,d: add 
001DB0:  63 3A 20 6C 64 20 64 2C 61 3A 20 69 6E 63 20 68    c: ld d,a: inc h
001DC0:  6C 3A 20 6A 72 20 63 68 61 72 5F 63 0D 0A 0D 0A    l: jr char_c....
001DD0:  2E 63 68 61 72 5F 62 09 70 75 73 68 20 64 65 0D    .char_b.push de.
001DE0:  0A 09 20 6C 64 20 6C 2C 62 3A 20 6C 64 20 68 2C    .. ld l,b: ld h,
001DF0:  30 3A 20 61 64 64 20 68 6C 2C 68 6C 3A 20 61 64    0: add hl,hl: ad
001E00:  64 20 68 6C 2C 68 6C 3A 20 61 64 64 20 68 6C 2C    d hl,hl: add hl,
001E10:  68 6C 0D 0A 09 20 6C 64 20 62 63 2C 63 68 72 73    hl... ld bc,chrs
001E20:  65 74 2D 32 35 36 3A 20 61 64 64 20 68 6C 2C 62    et-256: add hl,b
001E30:  63 3A 20 6C 64 20 63 2C 38 0D 0A 09 20 6C 64 20    c: ld c,8... ld 
001E40:  61 2C 28 68 6C 29 3A 20 6C 64 20 62 2C 61 3A 72    a,(hl): ld b,a:r
001E50:  72 61 3A 6F 72 20 62 3A 20 6C 64 20 28 64 65 29    ra:or b: ld (de)
001E60:  2C 61 3A 20 6C 64 20 61 2C 64 3A 20 61 64 64 20    ,a: ld a,d: add 
001E70:  63 3A 20 6C 64 20 64 2C 61 3A 20 69 6E 63 20 68    c: ld d,a: inc h
001E80:  6C 0D 0A 09 20 6C 64 20 61 2C 28 68 6C 29 3A 20    l... ld a,(hl): 
001E90:  6C 64 20 62 2C 61 3A 72 72 61 3A 6F 72 20 62 3A    ld b,a:rra:or b:
001EA0:  20 6C 64 20 28 64 65 29 2C 61 3A 20 6C 64 20 61     ld (de),a: ld a
001EB0:  2C 64 3A 20 61 64 64 20 63 3A 20 6C 64 20 64 2C    ,d: add c: ld d,
001EC0:  61 3A 20 69 6E 63 20 68 6C 0D 0A 09 20 6C 64 20    a: inc hl... ld 
001ED0:  61 2C 28 68 6C 29 3A 20 6C 64 20 62 2C 61 3A 72    a,(hl): ld b,a:r
001EE0:  72 61 3A 6F 72 20 62 3A 20 6C 64 20 28 64 65 29    ra:or b: ld (de)
001EF0:  2C 61 3A 20 6C 64 20 61 2C 64 3A 20 61 64 64 20    ,a: ld a,d: add 
001F00:  39 29 2C 61 3A 20 6A 70 20 64 69 73 70 6C 70 09    9),a: jp displp.
001F10:  09 09 3B 20 7C 0D 0A 0D 0A 09 3B 2B 2B 2B 20 73    ..; |.....;+++ s
001F20:  65 63 74 09 50 72 69 6E 74 20 61 72 74 69 63 6C    ect.Print articl
001F30:  65 0D 0A 0D 0A 2E 70 72 69 6E 74 09 6C 64 20 69    e.....print.ld i
001F40:  78 2C 26 34 30 30 32 0D 0A 2E 70 72 6E 74 6C 70    x,&4002...prntlp
001F50:  09 6C 64 20 61 2C 28 69 78 29 0D 0A 09 63 70 20    .ld a,(ix)...cp 
001F60:  26 39 30 3A 20 6A 72 20 7A 2C 70 72 5F 73 70 63    &90: jr z,pr_spc
001F70:  0D 0A 09 63 70 20 26 38 41 3A 20 6A 72 20 7A 2C    ...cp &8A: jr z,
001F80:  70 72 5F 6C 66 0D 0A 09 63 70 20 26 45 39 3A 20    pr_lf...cp &E9: 
001F90:  6A 72 20 7A 2C 70 72 5F 69 74 61 0D 0A 09 63 70    jr z,pr_ita...cp
001FA0:  20 26 45 32 3A 20 6A 72 20 7A 2C 70 72 5F 62 6C     &E2: jr z,pr_bl
001FB0:  64 0D 0A 09 63 70 20 26 31 41 3A 20 6A 70 20 7A    d...cp &1A: jp z
001FC0:  2C 64 69 73 70 6C 70 3A 20 6A 72 20 70 72 5F 63    ,displp: jr pr_c
001FD0:  68 72 0D 0A 0D 0A 2E 70 72 5F 73 70 63 09 6C 64    hr.....pr_spc.ld
001FE0:  20 61 2C 22 20 22 3A 20 6A 72 20 70 72 5F 63 68     a," ": jr pr_ch
001FF0:  72 0D 0A 2E 70 72 5F 6C 66 09 6C 64 20 61 2C 31    r...pr_lf.ld a,1
002000:  30 20 3A 20 6A 72 20 70 72 5F 63 68 72 0D 0A 2E    0 : jr pr_chr...
002010:  70 72 5F 69 74 61 09 6C 64 20 61 2C 32 37 3A 20    pr_ita.ld a,27: 
002020:  63 61 6C 6C 20 64 6F 5F 70 72 3A 20 6A 70 20 6E    call do_pr: jp n
002030:  63 2C 64 69 73 70 6C 70 0D 0A 09 6C 64 20 61 2C    c,displp...ld a,
002040:  28 69 74 61 6C 73 77 29 3A 20 78 6F 72 20 31 0D    (italsw): xor 1.
002050:  0A 09 6C 64 20 28 69 74 61 6C 73 77 29 2C 61 3A    ..ld (italsw),a:
002060:  20 6A 72 20 70 72 5F 63 68 72 0D 0A 2E 70 72 5F     jr pr_chr...pr_
002070:  62 6C 64 09 6C 64 20 61 2C 32 37 3A 20 63 61 6C    bld.ld a,27: cal
002080:  6C 20 64 6F 5F 70 72 3A 20 6A 70 20 6E 63 2C 64    l do_pr: jp nc,d
002090:  69 73 70 6C 70 0D 0A 09 6C 64 20 61 2C 28 62 6F    isplp...ld a,(bo
0020A0:  6C 64 73 77 29 3A 20 78 6F 72 20 33 0D 0A 09 6C    ldsw): xor 3...l
0020B0:  64 20 28 62 6F 6C 64 73 77 29 2C 61 3A 20 6A 72    d (boldsw),a: jr
0020C0:  20 70 72 5F 63 68 72 0D 0A 2E 70 72 5F 63 68 72     pr_chr...pr_chr
0020D0:  09 63 61 6C 6C 20 64 6F 5F 70 72 3A 20 6A 70 20    .call do_pr: jp 
0020E0:  6E 63 2C 64 69 73 70 6C 70 0D 0A 09 69 6E 63 20    nc,displp...inc 
0020F0:  69 78 3A 20 6A 72 20 70 72 6E 74 6C 70 0D 0A 0D    ix: jr prntlp...
002100:  29 2C 68 6C 0D 0A 0D 0A 09 78 6F 72 20 61 3A 20    ),hl.....xor a: 
002110:  6C 64 20 69 2C 61 3A 20 6C 64 20 64 65 2C 26 43    ld i,a: ld de,&C
002120:  30 30 30 3A 20 6C 64 20 69 78 2C 26 34 30 30 32    000: ld ix,&4002
002130:  09 09 3B 50 72 69 6E 74 20 69 6E 69 74 69 61 6C    ..;Print initial
002140:  20 73 63 72 65 65 6E 0D 0A 09 6C 64 20 69 79 2C     screen...ld iy,
002150:  6C 69 6E 65 74 62 3A 20 63 61 6C 6C 20 70 75 74    linetb: call put
002160:  76 61 6C 3A 20 6C 64 20 62 2C 32 35 09 09 3B 20    val: ld b,25..; 
002170:  7C 20 63 72 65 61 74 69 6E 67 20 74 61 62 6C 65    | creating table
002180:  0D 0A 2E 69 6E 69 74 6C 70 09 70 75 73 68 20 69    ...initlp.push i
002190:  79 3A 20 70 75 73 68 20 62 63 3A 20 63 61 6C 6C    y: push bc: call
0021A0:  20 6C 69 6E 65 09 09 09 3B 20 7C 0D 0A 09 70 6F     line...; |...po
0021B0:  70 20 20 62 63 3A 20 70 6F 70 20 20 69 79 3A 20    p  bc: pop  iy: 
0021C0:  63 61 6C 6C 20 70 75 74 76 61 6C 3A 20 64 6A 6E    call putval: djn
0021D0:  7A 20 69 6E 69 74 6C 70 09 3B 20 7C 0D 0A 0D 0A    z initlp.; |....
0021E0:  2E 64 69 73 70 6C 70 09 6C 64 20 68 6C 2C 28 63    .displp.ld hl,(c
0021F0:  72 74 63 29 09 09 09 09 09 3B 53 65 6E 64 20 73    rtc).....;Send s
002200:  63 72 65 65 6E 20 61 64 64 72 65 73 73 0D 0A 09    creen address...
002210:  6C 64 20 62 63 2C 26 42 43 30 43 3A 20 6F 75 74    ld bc,&BC0C: out
002220:  20 28 63 29 2C 63 3A 20 69 6E 63 20 62 3A 20 6F     (c),c: inc b: o
002230:  75 74 20 28 63 29 2C 68 09 3B 20 7C 0D 0A 09 6C    ut (c),h.; |...l
002240:  64 20 62 63 2C 26 42 43 30 44 3A 20 6F 75 74 20    d bc,&BC0D: out 
002250:  28 63 29 2C 63 3A 20 69 6E 63 20 62 3A 20 6F 75    (c),c: inc b: ou
002260:  74 20 28 63 29 2C 6C 09 3B 20 7C 0D 0A 0D 0A 09    t (c),l.; |.....
002270:  63 61 6C 6C 20 26 42 42 30 36 09 09 09 09 09 3B    call &BB06.....;
002280:  47 65 74 20 6B 65 79 0D 0A 09 63 70 20 32 34 30    Get key...cp 240
002290:  3A 20 6A 70 20 7A 20 2C 73 63 72 5F 75 70 09 09    : jp z ,scr_up..
0022A0:  09 09 3B 20 7C 0D 0A 09 63 70 20 32 34 31 3A 20    ..; |...cp 241: 
0022B0:  6A 70 20 7A 20 2C 73 63 72 5F 64 6E 09 09 09 09    jp z ,scr_dn....
0022C0:  3B 20 7C 0D 0A 09 63 70 20 22 70 22 3A 20 6A 70    ; |...cp "p": jp
0022D0:  20 7A 20 2C 70 72 69 6E 74 09 09 09 09 3B 20 7C     z ,print....; |
0022E0:  0D 0A 09 63 70 20 22 50 22 3A 20 6A 70 20 7A 20    ...cp "P": jp z 
0022F0:  2C 70 72 69 6E 74 09 09 09 09 3B 20 7C 0D 0A 0D    ,print....; |...
002300:  0A 09 3B 09 09 50 72 69 6E 74 20 61 20 63 68 61    ..;..Print a cha
002310:  72 61 63 74 65 72 0D 0A 0D 0A 2E 64 6F 5F 70 72    racter.....do_pr
002320:  09 63 61 6C 6C 20 26 42 44 32 42 3A 20 72 65 74    .call &BD2B: ret
002330:  20 63 20 3A 20 6C 64 20 62 2C 61 0D 0A 09 63 61     c : ld b,a...ca
002340:  6C 6C 20 26 42 42 30 39 3A 20 63 70 20 32 35 32    ll &BB09: cp 252
002350:  3A 20 6C 64 20 61 2C 62 3A 20 72 65 74 20 7A 3A    : ld a,b: ret z:
002360:  20 6A 72 20 64 6F 5F 70 72 0D 0A 0D 0A 0D 0A 09     jr do_pr.......
002370:  3B 2D 2D 2D 20 73 75 62 72 09 50 72 69 6E 74 20    ;--- subr.Print 
002380:  74 65 78 74 20 6C 69 6E 65 0D 0A 0D 0A 2E 6C 69    text line.....li
002390:  6E 65 09 64 62 20 26 46 44 3A 20 6C 64 20 68 2C    ne.db &FD: ld h,
0023A0:  30 0D 0A 2E 6C 69 6E 65 6C 70 09 6C 64 20 61 2C    0...linelp.ld a,
0023B0:  28 69 78 29 3A 20 69 6E 63 20 69 78 0D 0A 09 63    (ix): inc ix...c
0023C0:  70 20 31 33 20 3A 20 6A 72 20 7A 20 2C 65 6F 6C    p 13 : jr z ,eol
0023D0:  69 6E 65 0D 0A 09 63 70 20 26 45 30 3A 20 6A 72    ine...cp &E0: jr
0023E0:  20 6E 63 2C 62 6F 6C 64 69 74 3A 20 6C 64 20 62     nc,boldit: ld b
0023F0:  2C 61 0D 0A 0D 0A 09 6C 64 20 61 2C 69 3A 20 6F    ,a.....ld a,i: o
002400:  72 20 20 61 3A 20 63 61 6C 6C 20 7A 2C 63 68 61    r  a: call z,cha
002410:  72 09 09 09 3B 4E 6F 72 6D 61 6C 20 63 68 61 72    r...;Normal char
002420:  61 63 74 65 72 0D 0A 09 09 64 65 63 20 61 3A 20    acter....dec a: 
002430:  63 61 6C 6C 20 7A 2C 63 68 61 72 5F 69 09 09 09    call z,char_i...
002440:  3B 20 7C 0D 0A 09 09 64 65 63 20 61 3A 20 63 61    ; |....dec a: ca
002450:  6C 6C 20 7A 2C 63 68 61 72 5F 62 09 09 09 3B 20    ll z,char_b...; 
002460:  7C 0D 0A 09 09 64 65 63 20 61 3A 20 63 61 6C 6C    |....dec a: call
002470:  20 7A 2C 63 68 61 72 62 69 09 09 09 3B 20 7C 0D     z,charbi...; |.
002480:  0A 09 64 62 20 26 46 44 3A 20 69 6E 63 20 68 3A    ..db &FD: inc h:
002490:  20 6A 72 20 6C 69 6E 65 6C 70 09 09 09 3B 20 7C     jr linelp...; |
0024A0:  0D 0A 0D 0A 2E 62 6F 6C 64 69 74 09 63 70 20 26    .....boldit.cp &
0024B0:  45 32 3A 20 6A 72 20 7A 2C 63 68 62 6F 6C 64 09    E2: jr z,chbold.
0024C0:  09 09 09 3B 54 6F 67 67 6C 65 20 73 74 79 6C 65    ...;Toggle style
0024D0:  20 62 79 74 65 0D 0A 2E 63 68 69 74 61 6C 09 6C     byte...chital.l
0024E0:  64 20 61 2C 69 3A 20 78 6F 72 20 31 3A 20 6C 64    d a,i: xor 1: ld
0024F0:  20 69 2C 61 3A 20 6A 72 20 6C 69 6E 65 6C 70 09     i,a: jr linelp.
002500:  0A 2E 72 65 74 6B 09 6C 64 20 68 6C 2C 30 09 09    ..retk.ld hl,0..
002510:  09 09 09 09 3B 52 65 74 75 72 6E 20 6B 65 79 70    ....;Return keyp
002520:  72 65 73 73 0D 0A 09 6C 64 20 28 68 6C 29 2C 61    ress...ld (hl),a
002530:  3A 20 72 65 74 09 09 09 09 09 3B 20 7C 0D 0A 0D    : ret.....; |...
002540:  0A 09 3B 2B 2B 2B 20 73 65 63 74 09 53 63 72 6F    ..;+++ sect.Scro
002550:  6C 6C 20 75 70 20 6F 6E 65 20 6C 69 6E 65 0D 0A    ll up one line..
002560:  0D 0A 2E 73 63 72 5F 75 70 09 6C 64 20 68 6C 2C    ...scr_up.ld hl,
002570:  28 6C 69 6E 65 74 62 29 3A 20 6C 64 20 64 65 2C    (linetb): ld de,
002580:  26 34 30 30 33 09 09 09 3B 53 74 61 72 74 20 6F    &4003...;Start o
002590:  66 20 74 65 78 74 3F 0D 0A 09 6F 72 20 61 3A 20    f text?...or a: 
0025A0:  73 62 63 20 68 6C 2C 64 65 3A 20 6A 70 20 63 2C    sbc hl,de: jp c,
0025B0:  64 69 73 70 6C 70 09 09 09 3B 20 7C 0D 0A 0D 0A    displp...; |....
0025C0:  09 6C 64 20 68 6C 2C 6C 69 6E 65 74 62 2B 31 32    .ld hl,linetb+12
0025D0:  34 3A 20 6C 64 20 62 63 2C 31 32 35 09 09 09 3B    4: ld bc,125...;
0025E0:  4D 6F 76 65 20 74 61 62 6C 65 0D 0A 09 6C 64 20    Move table...ld 
0025F0:  64 65 2C 6C 69 6E 65 74 62 2B 31 32 39 3A 20 6C    de,linetb+129: l
002600:  64 64 72 09 09 09 09 3B 20 7C 0D 0A 0D 0A 09 6C    ddr....; |.....l
002610:  64 20 68 6C 2C 28 63 72 74 63 29 3A 20 6C 64 20    d hl,(crtc): ld 
002620:  64 65 2C 2D 34 30 3A 20 61 64 64 20 68 6C 2C 64    de,-40: add hl,d
002630:  65 09 09 3B 53 63 72 6F 6C 6C 20 75 70 0D 0A 09    e..;Scroll up...
002640:  62 69 74 20 34 2C 68 3A 20 6A 72 20 6E 7A 2C 73    bit 4,h: jr nz,s
002650:  63 72 5F 63 74 3A 20 6C 64 20 64 65 2C 31 30 32    cr_ct: ld de,102
002660:  34 3A 20 61 64 64 20 68 6C 2C 64 65 09 3B 20 7C    4: add hl,de.; |
002670:  0D 0A 2E 73 63 72 5F 63 74 09 6C 64 20 28 63 72    ...scr_ct.ld (cr
002680:  74 63 29 2C 68 6C 09 09 09 09 09 3B 20 7C 0D 0A    tc),hl.....; |..
002690:  0D 0A 09 6C 64 20 69 78 2C 28 6C 69 6E 65 74 62    ...ld ix,(linetb
0026A0:  2B 35 29 3A 20 64 65 63 20 69 78 3A 20 64 65 63    +5): dec ix: dec
0026B0:  20 69 78 09 09 3B 46 69 6E 64 20 70 72 65 76 69     ix..;Find previ
0026C0:  6F 75 73 20 6C 69 6E 65 0D 0A 09 6C 64 20 61 20    ous line...ld a 
0026D0:  2C 28 6C 69 6E 65 74 62 2B 39 29 3A 20 6C 64 20    ,(linetb+9): ld 
0026E0:  69 2C 61 09 09 09 3B 20 7C 0D 0A 2E 73 63 72 5F    i,a...; |...scr_
0026F0:  6C 70 09 64 65 63 20 69 78 3A 20 6C 64 20 61 2C    lp.dec ix: ld a,
002700:  54 72 61 63 6B 2D 49 6E 66 6F 0D 0A 00 00 00 00    Track-Info......
002710:  02 00 01 00 02 09 4E E5 02 00 C3 02 00 00 00 02    ......N.........
002720:  02 00 C8 02 00 00 00 02 02 00 C4 02 00 00 00 02    ................
002730:  02 00 C9 02 00 00 00 02 02 00 C5 02 00 00 00 02    ................
002740:  02 00 C1 02 00 00 00 02 02 00 C6 02 00 00 00 02    ................
002750:  02 00 C2 02 00 00 00 02 02 00 C7 02 00 00 00 02    ................
002760:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
002770:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
002780:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
002790:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
0027A0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
0027B0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
0027C0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
0027D0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
0027E0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
0027F0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
002800:  69 73 63 65 6C 6C 61 6E 65 6F 75 73 0D 0A 09 3B    iscellaneous...;
002810:  09 09 30 2F 31 20 74 65 78 74 20 61 64 64 72 65    ..0/1 text addre
002820:  73 73 0D 0A 09 3B 09 09 32 2F 33 20 73 63 72 65    ss...;..2/3 scre
002830:  65 6E 20 61 64 64 72 65 73 73 0D 0A 09 3B 09 09    en address...;..
002840:  34 20 20 20 73 74 79 6C 65 20 62 79 74 65 20 2D    4   style byte -
002850:  20 62 30 20 69 74 61 6C 69 63 2C 20 62 31 20 62     b0 italic, b1 b
002860:  6F 6C 64 0D 0A 0D 0A 2E 6C 69 6E 65 74 62 09 64    old.....linetb.d
002870:  73 20 31 33 30 0D 0A 0D 0A 2E 63 72 74 63 09 64    s 130.....crtc.d
002880:  77 20 26 33 30 30 30 09 09 09 09 09 3B 43 52 54    w &3000.....;CRT
002890:  43 20 72 65 67 69 73 74 65 72 73 20 31 32 2F 31    C registers 12/1
0028A0:  33 0D 0A 2E 63 68 72 73 65 74 09 64 73 20 26 37    3...chrset.ds &7
0028B0:  30 30 09 09 09 09 09 09 3B 43 68 61 72 61 63 74    00......;Charact
0028C0:  65 72 20 73 65 74 0D 0A 2E 69 74 61 6C 73 77 09    er set...italsw.
0028D0:  64 62 20 22 35 22 09 09 09 09 09 09 3B 50 72 69    db "5"......;Pri
0028E0:  6E 74 65 72 20 73 77 69 74 63 68 65 73 0D 0A 2E    nter switches...
0028F0:  62 6F 6C 64 73 77 09 64 62 20 22 46 22 09 09 09    boldsw.db "F"...
002900:  09 09 09 3B 20 7C 0D 0A 1A 44 24 24 24 FF 00 FF    ...; |...D$$$...
002910:  78 74 20 72 65 61 64 65 72 0D 0A 09 3B 28 63 29    xt reader...;(c)
002920:  20 31 39 39 37 20 43 52 54 43 2F 53 79 73 74 65     1997 CRTC/Syste
002930:  6D 65 20 44 0D 0A 0D 0A 09 6F 72 67 20 26 38 30    me D.....org &80
002940:  30 30 0D 0A 09 77 72 69 74 65 20 22 74 65 78 74    00...write "text
002950:  72 65 61 64 2E 62 69 6E 22 0D 0A 09 6E 6F 6C 69    read.bin"...noli
002960:  73 74 0D 0A 0D 0A 09 3B 2A 2A 2A 20 49 4E 49 54    st.....;*** INIT
002970:  09 49 6E 69 74 69 61 6C 69 73 65 20 52 53 58 73    .Initialise RSXs
002980:  69 0D 0A 09 6C 64 20 28 69 79 2B 30 29 2C 6C 3A    i...ld (iy+0),l:
002990:  20 6C 64 20 28 69 79 2B 31 29 2C 68 0D 0A 09 6C     ld (iy+1),h...l
0029A0:  64 20 28 69 79 2B 32 29 2C 65 3A 20 6C 64 20 28    d (iy+2),e: ld (
0029B0:  69 79 2B 33 29 2C 64 0D 0A 09 6C 64 20 28 69 79    iy+3),d...ld (iy
0029C0:  2B 34 29 2C 61 3A 20 69 6E 63 20 69 79 3A 69 6E    +4),a: inc iy:in
0029D0:  63 20 69 79 3A 69 6E 63 20 69 79 3A 69 6E 63 20    c iy:inc iy:inc 
0029E0:  69 79 3A 69 6E 63 20 69 79 3A 20 72 65 74 0D 0A    iy:inc iy: ret..
0029F0:  0D 0A 0D 0A 09 3B 2A 2A 2A 20 56 41 52 49 09 4D    .....;*** VARI.M
002A00:  3A 20 6C 64 20 63 2C 61 09 09 09 3B 20 7C 0D 0A    : ld c,a...; |..
002A10:  09 20 6C 64 20 61 2C 28 70 6F 73 29 3A 20 6F 72    . ld a,(pos): or
002A20:  20 61 3A 20 6A 70 20 7A 2C 6E 6F 73 70 61 63 3A     a: jp z,nospac:
002A30:  20 6C 64 20 62 2C 61 09 3B 44 6F 6E 27 74 20 62     ld b,a.;Don't b
002A40:  6F 74 68 65 72 20 69 66 20 62 75 66 66 65 72 20    other if buffer 
002A50:  65 6D 70 74 79 0D 0A 0D 0A 2E 73 70 63 5F 6C 70    empty.....spc_lp
002A60:  09 20 6C 64 20 61 2C 28 69 78 29 3A 20 63 70 20    . ld a,(ix): cp 
002A70:  32 37 3A 20 6A 72 20 6E 7A 2C 6E 6F 74 65 73 63    27: jr nz,notesc
002A80:  09 09 3B 45 53 43 61 70 65 20 63 6F 64 65 3F 0D    ..;ESCape code?.
002A90:  0A 09 20 6C 64 20 61 2C 28 69 78 2B 31 29 3A 20    .. ld a,(ix+1): 
002AA0:  63 70 20 22 50 22 3A 20 6A 72 20 7A 20 2C 70 69    cp "P": jr z ,pi
002AB0:  63 61 09 3B 20 7C 20 77 68 61 74 20 69 73 20 69    ca.; | what is i
002AC0:  74 3F 0D 0A 09 09 20 20 20 20 20 20 63 70 20 22    t?....      cp "
002AD0:  4D 22 3A 20 6A 72 20 7A 20 2C 65 6C 69 74 65 09    M": jr z ,elite.
002AE0:  3B 20 7C 20 20 7C 0D 0A 09 09 20 20 20 20 20 20    ; |  |....      
002AF0:  63 70 20 22 45 22 3A 20 6A 72 20 7A 20 2C 6F 74    cp "E": jr z ,ot
002B00:  68 65 72 09 3B 20 7C 20 20 7C 0D 0A 09 09 20 20    her.; |  |....  
002B10:  20 20 20 20 63 70 20 22 46 22 3A 20 6A 72 20 7A        cp "F": jr z
002B20:  20 2C 6F 74 68 65 72 09 3B 20 7C 20 20 7C 0D 0A     ,other.; |  |..
002B30:  09 09 20 20 20 20 20 20 63 70 20 22 34 22 3A 20    ..      cp "4": 
002B40:  6A 72 20 7A 20 2C 73 65 74 69 74 61 09 3B 20 7C    jr z ,setita.; |
002B50:  20 20 7C 0D 0A 09 09 20 20 20 20 20 20 63 70 20      |....      cp 
002B60:  22 35 22 3A 20 6A 72 20 7A 20 2C 72 65 73 69 74    "5": jr z ,resit
002B70:  61 09 3B 20 7C 20 20 7C 0D 0A 09 09 20 20 20 20    a.; |  |....    
002B80:  20 20 63 70 20 22 2D 22 3A 20 6A 72 20 7A 20 2C      cp "-": jr z ,
002B90:  6F 74 68 65 72 32 09 3B 20 7C 20 20 7C 0D 0A 09    other2.; |  |...
002BA0:  09 20 20 20 20 20 20 63 70 20 22 70 22 3A 20 6A    .      cp "p": j
002BB0:  72 20 6E 7A 2C 6F 74 68 65 72 09 3B 20 7C 20 20    r nz,other.; |  
002BC0:  7C 0D 0A 09 20 6C 64 20 61 2C 28 69 78 2B 32 29    |... ld a,(ix+2)
002BD0:  3A 20 63 70 20 22 31 22 3A 20 6A 72 20 7A 20 2C    : cp "1": jr z ,
002BE0:  70 72 70 5F 6F 6E 09 3B 20 7C 20 20 7C 0D 0A 09    prp_on.; |  |...
002BF0:  20 09 20 20 20 20 20 20 63 70 20 20 31 20 3A 20     .      cp  1 : 
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:  6A 72 20 7A 20 2C 70 72 70 5F 6F 6E 09 3B 20 7C    jr z ,prp_on.; |
002E10:  20 20 7C 0D 0A 09 20 6C 64 20 61 2C 28 70 72 76      |... ld a,(prv
002E20:  70 74 63 29 3A 20 6C 64 20 64 65 2C 33 3A 20 6A    ptc): ld de,3: j
002E30:  72 20 64 6E 5F 70 74 63 09 3B 20 7C 20 70 72 6F    r dn_ptc.; | pro
002E40:  70 6F 72 74 69 6F 6E 61 6C 20 6F 66 66 0D 0A 2E    portional off...
002E50:  70 72 70 5F 6F 6E 09 20 6C 64 20 61 2C 30 20 20    prp_on. ld a,0  
002E60:  20 20 20 20 20 3A 20 6C 64 20 64 65 2C 33 3A 20         : ld de,3: 
002E70:  6A 72 20 64 6E 5F 70 74 63 09 3B 20 7C 20 70 72    jr dn_ptc.; | pr
002E80:  6F 70 6F 72 74 69 6F 6E 61 6C 20 6F 6E 0D 0A 2E    oportional on...
002E90:  70 69 63 61 09 20 6C 64 20 61 2C 31 32 20 20 20    pica. ld a,12   
002EA0:  20 20 20 3A 20 6C 64 20 64 65 2C 32 3A 20 6A 72       : ld de,2: jr
002EB0:  20 64 6E 5F 70 74 63 09 3B 20 7C 20 70 69 63 61     dn_ptc.; | pica
002EC0:  20 31 30 63 70 69 0D 0A 2E 65 6C 69 74 65 09 20     10cpi...elite. 
002ED0:  6C 64 20 61 2C 31 30 20 20 20 20 20 20 3A 20 6C    ld a,10      : l
002EE0:  64 20 64 65 2C 32 3A 20 6A 72 20 64 6E 5F 70 74    d de,2: jr dn_pt
002EF0:  63 09 3B 20 7C 20 65 6C 69 74 65 20 31 32 63 70    c.; | elite 12cp
002F00:  69 0D 0A 2E 73 65 74 69 74 61 09 20 6C 64 20 61    i...setita. ld a
002F10:  2C 31 32 38 3A 20 6C 64 20 28 69 74 61 6C 69 63    ,128: ld (italic
002F20:  29 2C 61 3A 20 6C 64 20 64 65 2C 32 3A 20 6A 72    ),a: ld de,2: jr
002F30:  20 64 6E 3B 20 7C 20 69 74 61 6C 69 63 73 20 6F     dn; | italics o
002F40:  6E 0D 0A 2E 72 65 73 69 74 61 09 20 78 6F 72 20    n...resita. xor 
002F50:  61 20 20 20 3A 20 6C 64 20 28 69 74 61 6C 69 63    a   : ld (italic
002F60:  29 2C 61 3A 20 6C 64 20 64 65 2C 32 3A 20 6A 72    ),a: ld de,2: jr
002F70:  20 64 6E 3B 20 7C 20 69 74 61 6C 69 63 73 20 6F     dn; | italics o
002F80:  66 66 0D 0A 2E 6F 74 68 65 72 09 20 6C 64 20 64    ff...other. ld d
002F90:  65 2C 32 3A 20 6A 72 20 64 6E 09 09 09 09 3B 20    e,2: jr dn....; 
002FA0:  7C 20 6F 74 68 65 72 20 28 32 20 63 68 61 72 61    | other (2 chara
002FB0:  63 74 65 72 73 29 0D 0A 2E 6F 74 68 65 72 32 09    cters)...other2.
002FC0:  20 6C 64 20 64 65 2C 33 3A 20 6A 72 20 64 6E 09     ld de,3: jr dn.
002FD0:  09 09 09 3B 20 7C 20 6F 74 68 65 72 20 28 33 20    ...; | other (3 
002FE0:  63 68 61 72 61 63 74 65 72 73 29 0D 0A 2E 64 6E    characters)...dn
002FF0:  5F 70 74 63 09 20 6C 64 20 28 70 69 74 63 68 29    _ptc. ld (pitch)
003000:  0D 0A 09 3B 49 6D 61 67 65 50 72 69 6E 74 20 76    ...;ImagePrint v
003010:  31 2E 30 0D 0A 09 3B 28 63 29 20 52 69 63 68 61    1.0...;(c) Richa
003020:  72 64 20 46 61 69 72 68 75 72 73 74 20 41 70 72    rd Fairhurst Apr
003030:  69 6C 20 31 39 39 35 0D 0A 0D 0A 09 6F 72 67 20    il 1995.....org 
003040:  26 39 41 30 30 0D 0A 09 77 72 69 74 65 20 22 69    &9A00...write "i
003050:  6D 61 67 65 2E 62 69 6E 22 0D 0A 09 6E 6F 6C 69    mage.bin"...noli
003060:  73 74 0D 0A 0D 0A 6C 6F 61 64 09 65 71 75 20 26    st....load.equ &
003070:  37 30 30 30 0D 0A 0D 0A 09 3B 2A 2A 2A 20 52 4F    7000.....;*** RO
003080:  55 54 09 49 6E 69 74 69 61 6C 69 73 65 20 52 53    UT.Initialise RS
003090:  58 73 0D 0A 0D 0A 09 6C 64 20 62 63 2C 63 6F 6D    Xs.....ld bc,com
0030A0:  5F 74 0D 0A 09 6C 64 20 68 6C 2C 77 6B 73 70 0D    _t...ld hl,wksp.
0030B0:  0A 09 63 61 6C 6C 20 26 42 43 44 31 0D 0A 0D 0A    ..call &BCD1....
0030C0:  09 6C 64 20 61 20 2C 28 26 42 44 32 42 29 3A 20    .ld a ,(&BD2B): 
0030D0:  6C 64 20 28 73 74 6F 72 69 67 20 20 29 2C 61 0D    ld (storig  ),a.
0030E0:  0A 09 6C 64 20 68 6C 2C 28 26 42 44 32 43 29 3A    ..ld hl,(&BD2C):
0030F0:  20 6C 64 20 28 73 74 6F 72 69 67 2B 31 29 2C 68     ld (storig+1),h
003100:  6C 0D 0A 09 72 65 74 0D 0A 0D 0A 2E 63 6F 6D 5F    l...ret.....com_
003110:  74 09 64 77 20 6E 61 6D 65 5F 74 0D 0A 09 6A 70    t.dw name_t...jp
003120:  20 6F 6E 0D 0A 09 6A 70 20 6F 66 66 0D 0A 0D 0A     on...jp off....
003130:  2E 6E 61 6D 65 5F 74 09 73 74 72 20 22 49 50 2E    .name_t.str "IP.
003140:  4F 4E 22 0D 0A 09 73 74 72 20 22 49 50 2E 4F 46    ON"...str "IP.OF
003150:  46 22 0D 0A 09 64 62 20 30 0D 0A 0D 0A 2E 77 6B    F"...db 0.....wk
003160:  73 70 09 64 73 20 34 0D 0A 0D 0A 09 3B 2A 2A 2A    sp.ds 4.....;***
003170:  20 52 53 58 09 7C 49 50 2E 4F 4E 2C 20 7C 49 50     RSX.|IP.ON, |IP
003180:  2E 4F 46 46 0D 0A 0D 0A 2E 6F 6E 09 6C 64 20 61    .OFF.....on.ld a
003190:  2C 26 43 33 20 20 20 20 20 3A 20 6C 64 20 28 26    ,&C3     : ld (&
0031A0:  42 44 32 42 29 2C 61 3A 20 6C 64 20 68 6C 2C 72    BD2B),a: ld hl,r
0031B0:  6F 75 74 20 20 20 20 20 20 3A 20 6C 64 20 28 26    out      : ld (&
0031C0:  42 44 32 43 29 2C 68 6C 3A 20 6A 70 20 69 6E 69    BD2C),hl: jp ini
0031D0:  74 0D 0A 2E 6F 66 66 09 6C 64 20 61 2C 28 73 74    t...off.ld a,(st
0031E0:  6F 72 69 67 29 3A 20 6C 64 20 28 26 42 44 32 42    orig): ld (&BD2B
0031F0:  29 2C 61 3A 20 6C 64 20 68 6C 2C 28 73 74 6F 72    ),a: ld hl,(stor
003200:  63 3A 20 6C 64 20 64 2C 61 3A 20 69 6E 63 20 68    c: ld d,a: inc h
003210:  6C 0D 0A 09 20 6C 64 20 61 2C 28 68 6C 29 3A 20    l... ld a,(hl): 
003220:  6C 64 20 62 2C 61 3A 72 72 61 3A 6F 72 20 62 3A    ld b,a:rra:or b:
003230:  20 6C 64 20 28 64 65 29 2C 61 3A 20 6C 64 20 61     ld (de),a: ld a
003240:  2C 64 3A 20 61 64 64 20 63 3A 20 6C 64 20 64 2C    ,d: add c: ld d,
003250:  61 3A 20 69 6E 63 20 68 6C 0D 0A 2E 63 68 61 72    a: inc hl...char
003260:  62 63 09 20 6C 64 20 61 2C 28 68 6C 29 3A 20 6C    bc. ld a,(hl): l
003270:  64 20 62 2C 61 3A 72 72 61 3A 6F 72 20 62 3A 20    d b,a:rra:or b: 
003280:  6C 64 20 28 64 65 29 2C 61 3A 20 6C 64 20 61 2C    ld (de),a: ld a,
003290:  64 3A 20 61 64 64 20 63 3A 20 6C 64 20 64 2C 61    d: add c: ld d,a
0032A0:  3A 20 69 6E 63 20 68 6C 0D 0A 09 20 6C 64 20 61    : inc hl... ld a
0032B0:  2C 28 68 6C 29 3A 20 6C 64 20 62 2C 61 3A 72 72    ,(hl): ld b,a:rr
0032C0:  61 3A 6F 72 20 62 3A 20 6C 64 20 28 64 65 29 2C    a:or b: ld (de),
0032D0:  61 3A 20 6C 64 20 61 2C 64 3A 20 61 64 64 20 63    a: ld a,d: add c
0032E0:  3A 20 6C 64 20 64 2C 61 3A 20 69 6E 63 20 68 6C    : ld d,a: inc hl
0032F0:  0D 0A 09 20 6C 64 20 61 2C 28 68 6C 29 3A 20 6C    ... ld a,(hl): l
003300:  64 20 62 2C 61 3A 72 72 61 3A 6F 72 20 62 3A 20    d b,a:rra:or b: 
003310:  6C 64 20 28 64 65 29 2C 61 3A 20 6C 64 20 61 2C    ld (de),a: ld a,
003320:  64 3A 20 61 64 64 20 63 3A 20 6C 64 20 64 2C 61    d: add c: ld d,a
003330:  3A 20 69 6E 63 20 68 6C 0D 0A 09 20 6C 64 20 61    : inc hl... ld a
003340:  2C 28 68 6C 29 3A 20 6C 64 20 62 2C 61 3A 72 72    ,(hl): ld b,a:rr
003350:  61 3A 6F 72 20 62 3A 20 6C 64 20 28 64 65 29 2C    a:or b: ld (de),
003360:  61 0D 0A 09 70 6F 70 20 64 65 3A 20 69 6E 63 20    a...pop de: inc 
003370:  64 65 3A 20 72 65 73 20 33 2C 64 3A 20 6C 64 20    de: res 3,d: ld 
003380:  61 2C 32 35 35 3A 20 72 65 74 0D 0A 0D 0A 2E 63    a,255: ret.....c
003390:  68 61 72 62 69 09 70 75 73 68 20 64 65 0D 0A 09    harbi.push de...
0033A0:  20 6C 64 20 6C 2C 62 3A 20 6C 64 20 68 2C 30 3A     ld l,b: ld h,0:
0033B0:  20 61 64 64 20 68 6C 2C 68 6C 3A 20 61 64 64 20     add hl,hl: add 
0033C0:  68 6C 2C 68 6C 3A 20 61 64 64 20 68 6C 2C 68 6C    hl,hl: add hl,hl
0033D0:  0D 0A 09 20 6C 64 20 62 63 2C 63 68 72 73 65 74    ... ld bc,chrset
0033E0:  2D 32 35 36 3A 20 61 64 64 20 68 6C 2C 62 63 3A    -256: add hl,bc:
0033F0:  20 6C 64 20 63 2C 38 0D 0A 09 20 6C 64 20 61 2C     ld c,8... ld a,
003400:  69 67 2B 31 29 3A 20 6C 64 20 28 26 42 44 32 43    ig+1): ld (&BD2C
003410:  29 2C 68 6C 0D 0A 09 6C 64 20 61 2C 32 37 3A 20    ),hl...ld a,27: 
003420:  63 61 6C 6C 20 70 72 6E 3A 20 6C 64 20 61 2C 22    call prn: ld a,"
003430:  32 22 3A 20 63 61 6C 6C 20 70 72 6E 3A 20 72 65    2": call prn: re
003440:  74 0D 0A 0D 0A 09 3B 2A 2A 2A 20 52 4F 55 54 09    t.....;*** ROUT.
003450:  49 6E 69 74 69 61 6C 69 73 61 74 69 6F 6E 20 6F    Initialisation o
003460:  66 20 76 61 72 69 61 62 6C 65 73 0D 0A 0D 0A 2E    f variables.....
003470:  69 6E 69 74 09 6C 64 20 68 6C 2C 63 68 61 72 73    init.ld hl,chars
003480:  3A 20 6C 64 20 28 62 75 66 70 6F 73 29 2C 68 6C    : ld (bufpos),hl
003490:  0D 0A 09 78 6F 72 20 61 20 20 20 20 20 20 3A 20    ...xor a      : 
0034A0:  6C 64 20 28 70 6F 73 29 2C 61 0D 0A 09 78 6F 72    ld (pos),a...xor
0034B0:  20 61 20 20 20 20 20 20 3A 20 6C 64 20 28 69 74     a      : ld (it
0034C0:  61 6C 69 63 29 2C 61 3A 20 6C 64 20 28 62 6F 6C    alic),a: ld (bol
0034D0:  64 29 2C 61 3A 20 6C 64 20 28 75 6E 64 65 72 6C    d),a: ld (underl
0034E0:  29 2C 61 0D 0A 09 6C 64 20 61 2C 31 32 20 20 20    ),a...ld a,12   
0034F0:  20 3A 20 6C 64 20 28 70 69 74 63 68 29 2C 61 3A     : ld (pitch),a:
003500:  20 6C 64 20 28 70 72 76 70 74 63 29 2C 61 0D 0A     ld (prvptc),a..
003510:  09 72 65 74 0D 0A 0D 0A 09 3B 2A 2A 2A 20 52 4F    .ret.....;*** RO
003520:  55 54 09 4D 61 69 6E 20 69 6E 64 69 72 65 63 74    UT.Main indirect
003530:  69 6F 6E 20 72 6F 75 74 69 6E 65 0D 0A 0D 0A 2E    ion routine.....
003540:  72 6F 75 74 09 63 70 20 31 33 3A 20 6A 70 20 7A    rout.cp 13: jp z
003550:  2C 65 6D 70 74 79 09 09 09 3B 43 61 72 72 69 61    ,empty...;Carria
003560:  67 65 20 72 65 74 75 72 6E 3F 0D 0A 09 63 70 20    ge return?...cp 
003570:  31 30 3A 20 6A 72 20 7A 2C 69 67 6E 6F 72 65 09    10: jr z,ignore.
003580:  09 09 3B 4C 69 6E 65 20 66 65 65 64 20 28 69 67    ..;Line feed (ig
003590:  6E 6F 72 65 29 3F 0D 0A 09 70 75 73 68 20 68 6C    nore)?...push hl
0035A0:  09 09 09 09 09 3B 4E 6F 2C 20 73 6F 20 73 74 6F    .....;No, so sto
0035B0:  72 65 20 69 6E 20 62 75 66 66 65 72 0D 0A 09 20    re in buffer... 
0035C0:  6C 64 20 68 6C 2C 28 62 75 66 70 6F 73 29 3A 20    ld hl,(bufpos): 
0035D0:  6C 64 20 28 68 6C 29 2C 61 09 09 3B 20 7C 0D 0A    ld (hl),a..; |..
0035E0:  09 20 3A 20 69 6E 63 20 68 6C 3A 20 6C 64 20 28    . : inc hl: ld (
0035F0:  62 75 66 70 6F 73 29 2C 68 6C 09 09 3B 20 7C 0D    bufpos),hl..; |.
003600:  28 68 6C 29 3A 20 6C 64 20 62 2C 61 3A 72 72 61    (hl): ld b,a:rra
003610:  3A 6F 72 20 62 3A 20 72 72 61 3A 20 6C 64 20 28    :or b: rra: ld (
003620:  64 65 29 2C 61 3A 20 6C 64 20 61 2C 64 3A 20 61    de),a: ld a,d: a
003630:  64 64 20 63 3A 20 6C 64 20 64 2C 61 3A 20 69 6E    dd c: ld d,a: in
003640:  63 20 68 6C 0D 0A 09 20 6C 64 20 61 2C 28 68 6C    c hl... ld a,(hl
003650:  29 3A 20 6C 64 20 62 2C 61 3A 72 72 61 3A 6F 72    ): ld b,a:rra:or
003660:  20 62 3A 20 72 72 61 3A 20 6C 64 20 28 64 65 29     b: rra: ld (de)
003670:  2C 61 3A 20 6C 64 20 61 2C 64 3A 20 61 64 64 20    ,a: ld a,d: add 
003680:  63 3A 20 6C 64 20 64 2C 61 3A 20 69 6E 63 20 68    c: ld d,a: inc h
003690:  6C 0D 0A 09 20 6C 64 20 61 2C 28 68 6C 29 3A 20    l... ld a,(hl): 
0036A0:  6C 64 20 62 2C 61 3A 72 72 61 3A 6F 72 20 62 3A    ld b,a:rra:or b:
0036B0:  20 72 72 61 3A 20 6C 64 20 28 64 65 29 2C 61 3A     rra: ld (de),a:
0036C0:  20 6C 64 20 61 2C 64 3A 20 61 64 64 20 63 3A 20     ld a,d: add c: 
0036D0:  6C 64 20 64 2C 61 3A 20 69 6E 63 20 68 6C 0D 0A    ld d,a: inc hl..
0036E0:  09 20 6C 64 20 61 2C 28 68 6C 29 3A 20 6C 64 20    . ld a,(hl): ld 
0036F0:  62 2C 61 3A 72 72 61 3A 6F 72 20 62 3A 20 72 72    b,a:rra:or b: rr
003700:  61 3A 20 6C 64 20 28 64 65 29 2C 61 3A 20 6C 64    a: ld (de),a: ld
003710:  20 61 2C 64 3A 20 61 64 64 20 63 3A 20 6C 64 20     a,d: add c: ld 
003720:  64 2C 61 3A 20 69 6E 63 20 68 6C 3A 20 6A 72 20    d,a: inc hl: jr 
003730:  63 68 61 72 62 63 0D 0A 0D 0A 09 3B 2A 2A 2A 20    charbc.....;*** 
003740:  53 55 42 52 09 50 75 74 20 76 61 6C 75 65 73 20    SUBR.Put values 
003750:  69 6E 20 6C 69 6E 65 74 62 20 28 69 79 29 0D 0A    in linetb (iy)..
003760:  0D 0A 2E 70 75 74 76 61 6C 09 70 75 73 68 20 69    ...putval.push i
003770:  78 3A 20 70 6F 70 20 68 6C 3A 20 6C 64 20 61 2C    x: pop hl: ld a,
003780:  69 0D 0A 09 6C 64 20 28 69 79 2B 30 29 2C 6C 3A    i...ld (iy+0),l:
003790:  20 6C 64 20 28 69 79 2B 31 29 2C 68 0D 0A 09 6C     ld (iy+1),h...l
0037A0:  64 20 28 69 79 2B 32 29 2C 65 3A 20 6C 64 20 28    d (iy+2),e: ld (
0037B0:  69 79 2B 33 29 2C 64 0D 0A 09 6C 64 20 28 69 79    iy+3),d...ld (iy
0037C0:  2B 34 29 2C 61 3A 20 69 6E 63 20 69 79 3A 69 6E    +4),a: inc iy:in
0037D0:  63 20 69 79 3A 69 6E 63 20 69 79 3A 69 6E 63 20    c iy:inc iy:inc 
0037E0:  69 79 3A 69 6E 63 20 69 79 3A 20 72 65 74 0D 0A    iy:inc iy: ret..
0037F0:  0D 0A 0D 0A 09 3B 2A 2A 2A 20 56 41 52 49 09 4D    .....;*** VARI.M
003800:  0A 09 70 6F 70 20 68 6C 09 09 09 09 09 3B 20 7C    ..pop hl.....; |
003810:  0D 0A 09 6C 64 20 61 2C 28 70 6F 73 29 3A 20 69    ...ld a,(pos): i
003820:  6E 63 20 61 3A 20 6F 72 20 61 09 09 09 3B 49 6E    nc a: or a...;In
003830:  63 72 65 61 73 65 20 63 68 61 72 61 63 74 65 72    crease character
003840:  20 63 6F 75 6E 74 0D 0A 09 3A 20 72 65 74 20 7A     count...: ret z
003850:  3A 20 6C 64 20 28 70 6F 73 29 2C 61 09 09 09 3B    : ld (pos),a...;
003860:  20 7C 20 72 65 74 75 72 6E 20 75 6E 68 61 70 70     | return unhapp
003870:  79 20 69 66 20 6F 76 65 72 66 6C 6F 77 0D 0A 2E    y if overflow...
003880:  69 67 6E 6F 72 65 09 73 63 66 3A 20 72 65 74 09    ignore.scf: ret.
003890:  09 09 09 3B 52 65 74 75 72 6E 20 22 6F 6B 22 0D    ...;Return "ok".
0038A0:  0A 0D 0A 09 3B 2A 2A 2A 20 52 4F 55 54 09 45 6D    ....;*** ROUT.Em
0038B0:  70 74 79 20 62 75 66 66 65 72 0D 0A 0D 0A 2E 65    pty buffer.....e
0038C0:  6D 70 74 79 09 70 75 73 68 20 62 63 3A 20 70 75    mpty.push bc: pu
0038D0:  73 68 20 64 65 3A 20 70 75 73 68 20 68 6C 3A 20    sh de: push hl: 
0038E0:  70 75 73 68 20 69 78 3A 20 70 75 73 68 20 69 79    push ix: push iy
0038F0:  0D 0A 0D 0A 09 20 6C 64 20 68 6C 2C 28 62 75 66    ..... ld hl,(buf
003900:  70 6F 73 29 3A 20 6C 64 20 64 65 2C 73 70 61 63    pos): ld de,spac
003910:  65 73 09 09 3B 43 6C 65 61 72 20 75 6E 75 73 65    es..;Clear unuse
003920:  64 20 62 75 66 66 65 72 0D 0A 2E 77 69 70 65 6C    d buffer...wipel
003930:  70 09 20 6C 64 20 61 2C 68 3A 20 63 70 20 64 3A    p. ld a,h: cp d:
003940:  20 6A 72 20 6E 7A 2C 6E 6F 74 65 6E 64 09 09 3B     jr nz,notend..;
003950:  20 7C 0D 0A 09 20 6C 64 20 61 2C 6C 3A 20 63 70     |... ld a,l: cp
003960:  20 65 3A 20 6A 72 20 7A 20 2C 62 75 66 65 6E 64     e: jr z ,bufend
003970:  09 09 3B 20 7C 0D 0A 2E 6E 6F 74 65 6E 64 09 20    ..; |...notend. 
003980:  6C 64 20 28 68 6C 29 2C 30 3A 20 69 6E 63 20 68    ld (hl),0: inc h
003990:  6C 3A 20 6A 72 20 77 69 70 65 6C 70 09 09 3B 20    l: jr wipelp..; 
0039A0:  7C 0D 0A 2E 62 75 66 65 6E 64 0D 0A 09 20 3B 09    |...bufend... ;.
0039B0:  09 53 74 61 67 65 20 31 20 2D 20 61 73 73 65 73    .Stage 1 - asses
0039C0:  73 20 73 70 61 63 69 6E 67 0D 0A 0D 0A 09 20 6C    s spacing..... l
0039D0:  64 20 69 78 2C 63 68 61 72 73 3A 20 6C 64 20 69    d ix,chars: ld i
0039E0:  79 2C 73 70 61 63 65 73 09 09 3B 53 74 61 72 74    y,spaces..;Start
0039F0:  0D 0A 09 20 6C 64 20 61 2C 28 70 69 74 63 68 29    ... ld a,(pitch)
003A00:  54 72 61 63 6B 2D 49 6E 66 6F 0D 0A 00 00 00 00    Track-Info......
003A10:  03 00 01 00 02 09 4E E5 03 00 C6 02 00 00 00 02    ......N.........
003A20:  03 00 C2 02 00 00 00 02 03 00 C7 02 00 00 00 02    ................
003A30:  03 00 C3 02 00 00 00 02 03 00 C8 02 00 00 00 02    ................
003A40:  03 00 C4 02 00 00 00 02 03 00 C9 02 00 00 00 02    ................
003A50:  03 00 C5 02 00 00 00 02 03 00 C1 02 00 00 00 02    ................
003A60:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
003A70:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
003A80:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
003A90:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
003AA0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
003AB0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
003AC0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
003AD0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
003AE0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
003AF0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
003B00:  3A 20 69 6E 63 20 69 79 09 09 09 09 3B 4E 65 78    : inc iy....;Nex
003B10:  74 20 62 75 66 66 65 72 20 70 6F 73 69 74 69 6F    t buffer positio
003B20:  6E 0D 0A 2E 70 72 6E 5F 63 74 09 64 65 63 20 62    n...prn_ct.dec b
003B30:  3A 20 6A 70 20 6E 7A 2C 70 72 6E 63 6C 70 09 09    : jp nz,prnclp..
003B40:  09 3B 4C 6F 6F 70 2E 2E 2E 0D 0A 2E 6E 6F 70 72    .;Loop......nopr
003B50:  69 6E 09 78 6F 72 20 61 3A 20 63 61 6C 6C 20 70    in.xor a: call p
003B60:  72 6E 67 72 61 09 09 09 3B 46 69 6E 69 73 68 20    rngra...;Finish 
003B70:  6F 66 66 20 62 6F 6C 64 0D 0A 09 78 6F 72 20 61    off bold...xor a
003B80:  3A 20 63 61 6C 6C 20 70 72 6E 67 72 61 09 09 09    : call prngra...
003B90:  3B 20 7C 0D 0A 09 63 61 6C 6C 20 65 6D 70 74 79    ; |...call empty
003BA0:  67 09 09 09 09 3B 45 6D 70 74 79 20 67 72 61 70    g....;Empty grap
003BB0:  68 69 63 73 20 62 75 66 66 65 72 0D 0A 09 6C 64    hics buffer...ld
003BC0:  20 61 2C 31 30 3A 20 63 61 6C 6C 20 70 72 6E 09     a,10: call prn.
003BD0:  09 09 3B 43 52 2F 4C 46 0D 0A 09 6C 64 20 61 2C    ..;CR/LF...ld a,
003BE0:  31 33 3A 20 63 61 6C 6C 20 70 72 6E 3A 20 72 65    13: call prn: re
003BF0:  74 09 09 09 3B 20 7C 20 61 6E 64 20 71 75 69 74    t...; | and quit
003C00:  0D 0A 0D 0A 0D 0A 09 3B 2A 2A 2A 20 53 55 42 52    .......;*** SUBR
003C10:  09 43 61 6C 63 75 6C 61 74 65 20 63 68 61 72 61    .Calculate chara
003C20:  63 74 65 72 20 73 70 61 63 69 6E 67 20 66 6F 72    cter spacing for
003C30:  20 28 49 58 29 20 69 6E 74 6F 20 41 0D 0A 09 3B     (IX) into A...;
003C40:  09 09 4C 6F 77 20 20 6E 69 62 62 6C 65 20 2D 20    ..Low  nibble - 
003C50:  6E 75 6D 62 65 72 20 74 6F 20 70 72 69 6E 74 0D    number to print.
003C60:  0A 09 3B 09 09 48 69 67 68 20 6E 69 62 62 6C 65    ..;..High nibble
003C70:  20 2D 20 77 68 65 72 65 20 74 6F 20 73 74 61 72     - where to star
003C80:  74 20 70 72 69 6E 74 69 6E 67 0D 0A 0D 0A 2E 67    t printing.....g
003C90:  65 74 70 72 70 09 70 75 73 68 20 69 78 0D 0A 09    etprp.push ix...
003CA0:  20 6C 64 20 61 2C 28 69 78 29 3A 20 63 70 20 22     ld a,(ix): cp "
003CB0:  20 22 3A 20 6A 72 20 7A 20 2C 67 70 73 70 61 63     ": jr z ,gpspac
003CC0:  09 3B 53 75 62 73 74 69 74 75 74 65 20 22 41 22    .;Substitute "A"
003CD0:  20 66 6F 72 20 73 70 61 63 65 0D 0A 09 09 20 20     for space....  
003CE0:  20 20 63 70 20 31 36 30 3A 20 6A 72 20 6E 7A 2C      cp 160: jr nz,
003CF0:  67 70 6E 6F 74 73 09 3B 20 7C 0D 0A 2E 67 70 73    gpnots.; |...gps
003D00:  64 20 61 2C 31 36 3A 20 6C 64 20 28 75 6E 64 65    d a,16: ld (unde
003D10:  72 63 29 2C 61 0D 0A 09 20 6C 64 20 63 2C 31 31    rc),a... ld c,11
003D20:  3A 20 6C 64 20 68 6C 2C 6C 6F 61 64 2B 33 36 3A    : ld hl,load+36:
003D30:  20 63 61 6C 6C 20 70 72 69 6E 74 3A 20 6C 64 20     call print: ld 
003D40:  61 2C 30 20 3A 20 6C 64 20 28 75 6E 64 65 72 63    a,0 : ld (underc
003D50:  29 2C 61 0D 0A 0D 0A 09 20 6C 64 20 68 6C 2C 63    ),a..... ld hl,c
003D60:  68 61 72 73 3A 20 6C 64 20 28 62 75 66 70 6F 73    hars: ld (bufpos
003D70:  29 2C 68 6C 0D 0A 09 20 78 6F 72 20 61 20 20 20    ),hl... xor a   
003D80:  20 20 20 3A 20 6C 64 20 28 70 6F 73 20 20 20 29       : ld (pos   )
003D90:  2C 61 0D 0A 09 70 6F 70 20 69 79 3A 20 70 6F 70    ,a...pop iy: pop
003DA0:  20 69 78 3A 20 70 6F 70 20 68 6C 3A 20 70 6F 70     ix: pop hl: pop
003DB0:  20 64 65 3A 20 70 6F 70 20 62 63 0D 0A 09 73 63     de: pop bc...sc
003DC0:  66 3A 20 72 65 74 0D 0A 0D 0A 09 3B 2A 2A 2A 20    f: ret.....;*** 
003DD0:  53 55 42 52 09 50 72 69 6E 74 20 61 20 6C 69 6E    SUBR.Print a lin
003DE0:  65 20 6F 66 20 63 68 61 72 61 63 74 65 72 73 0D    e of characters.
003DF0:  0A 09 3B 09 09 75 73 69 6E 67 20 64 61 74 61 20    ..;..using data 
003E00:  66 72 6F 6D 20 48 4C 2C 20 63 68 61 72 61 63 74    from HL, charact
003E10:  65 72 20 73 70 61 63 69 6E 67 20 43 20 31 2F 32    er spacing C 1/2
003E20:  31 36 22 0D 0A 0D 0A 2E 70 72 69 6E 74 09 6C 64    16".....print.ld
003E30:  20 61 2C 32 37 20 3A 20 63 61 6C 6C 20 70 72 6E     a,27 : call prn
003E40:  09 09 09 3B 53 65 6E 64 20 6C 69 6E 65 20 73 70    ...;Send line sp
003E50:  61 63 69 6E 67 20 63 6F 64 65 0D 0A 09 6C 64 20    acing code...ld 
003E60:  61 2C 22 33 22 3A 20 63 61 6C 6C 20 70 72 6E 09    a,"3": call prn.
003E70:  09 09 3B 20 7C 0D 0A 09 6C 64 20 61 2C 63 20 20    ..; |...ld a,c  
003E80:  3A 20 63 61 6C 6C 20 70 72 6E 09 09 09 3B 20 7C    : call prn...; |
003E90:  0D 0A 09 6C 64 20 28 62 61 73 65 29 2C 68 6C 09    ...ld (base),hl.
003EA0:  09 09 09 3B 20 7C 0D 0A 0D 0A 09 6C 64 20 69 78    ...; |.....ld ix
003EB0:  2C 63 68 61 72 73 3A 20 6C 64 20 69 79 2C 73 70    ,chars: ld iy,sp
003EC0:  61 63 65 73 09 09 3B 53 74 61 72 74 0D 0A 09 6C    aces..;Start...l
003ED0:  64 20 61 2C 28 70 6F 73 29 3A 20 6F 72 20 61 3A    d a,(pos): or a:
003EE0:  20 6A 70 20 7A 2C 6E 6F 70 72 69 6E 3A 20 6C 64     jp z,noprin: ld
003EF0:  20 62 2C 61 09 3B 53 6B 69 70 20 69 66 20 62 75     b,a.;Skip if bu
003F00:  70 61 63 09 20 6C 64 20 61 2C 22 41 22 09 09 09    pac. ld a,"A"...
003F10:  09 3B 20 7C 0D 0A 0D 0A 2E 67 70 6E 6F 74 73 09    .; |.....gpnots.
003F20:  20 73 75 62 20 33 32 3A 20 6C 64 20 6C 2C 61 3A     sub 32: ld l,a:
003F30:  20 6C 64 20 68 2C 30 09 09 09 3B 47 65 74 20 62     ld h,0...;Get b
003F40:  61 73 65 20 61 64 64 72 65 73 73 0D 0A 09 20 61    ase address... a
003F50:  64 64 20 68 6C 2C 68 6C 3A 20 61 64 64 20 68 6C    dd hl,hl: add hl
003F60:  2C 68 6C 3A 20 61 64 64 20 68 6C 2C 68 6C 09 3B    ,hl: add hl,hl.;
003F70:  20 7C 0D 0A 09 20 61 64 64 20 68 6C 2C 68 6C 3A     |... add hl,hl:
003F80:  20 70 75 73 68 20 68 6C 3A 20 20 20 61 64 64 20     push hl:   add 
003F90:  68 6C 2C 68 6C 09 3B 20 7C 0D 0A 09 20 70 6F 70    hl,hl.; |... pop
003FA0:  20 64 65 20 20 20 3A 20 61 64 64 20 68 6C 2C 64     de   : add hl,d
003FB0:  65 3A 20 6C 64 20 64 65 2C 6C 6F 61 64 09 3B 20    e: ld de,load.; 
003FC0:  7C 0D 0A 09 20 61 64 64 20 68 6C 2C 64 65 3A 20    |... add hl,de: 
003FD0:  70 75 73 68 20 68 6C 3A 20 70 6F 70 20 69 78 09    push hl: pop ix.
003FE0:  09 3B 20 7C 0D 0A 0D 0A 09 20 6C 64 20 64 2C 30    .; |..... ld d,0
003FF0:  09 09 09 09 09 3B 46 69 6E 64 20 77 68 65 72 65    .....;Find where
004000:  20 74 6F 20 73 74 61 72 74 0D 0A 2E 67 65 74 73     to start...gets
004010:  74 6C 09 20 6C 64 20 61 2C 20 28 69 78 29 3A 20    tl. ld a, (ix): 
004020:  6F 72 20 28 69 78 2B 31 32 29 09 09 09 3B 20 7C    or (ix+12)...; |
004030:  0D 0A 09 20 6F 72 20 28 69 78 2B 32 34 29 3A 20    ... or (ix+24): 
004040:  6F 72 20 28 69 78 2B 33 36 29 3A 20 6A 72 20 6E    or (ix+36): jr n
004050:  7A 2C 67 6F 74 73 74 09 3B 20 7C 0D 0A 09 20 69    z,gotst.; |... i
004060:  6E 63 20 64 3A 20 69 6E 63 20 69 78 09 09 09 09    nc d: inc ix....
004070:  3B 20 7C 0D 0A 09 20 6C 64 20 61 2C 64 3A 20 63    ; |... ld a,d: c
004080:  70 20 31 31 3A 20 6A 72 20 6E 7A 2C 67 65 74 73    p 11: jr nz,gets
004090:  74 6C 09 09 3B 20 7C 0D 0A 09 20 6C 64 20 65 2C    tl..; |... ld e,
0040A0:  31 32 3A 20 6A 72 20 67 6F 74 65 6E 64 09 09 09    12: jr gotend...
0040B0:  3B 20 7C 0D 0A 2E 67 6F 74 73 74 09 20 0D 0A 09    ; |...gotst. ...
0040C0:  20 6C 64 20 65 2C 64 09 09 09 09 09 3B 50 72 69     ld e,d.....;Pri
0040D0:  6E 74 20 68 6F 77 20 6D 61 6E 79 3F 0D 0A 2E 67    nt how many?...g
0040E0:  65 74 6C 6E 6C 09 20 6C 64 20 61 2C 20 28 69 78    etlnl. ld a, (ix
0040F0:  29 3A 20 6F 72 20 28 69 78 2B 31 32 29 09 09 09    ): or (ix+12)...
004100:  66 66 65 72 20 65 6D 70 74 79 0D 0A 0D 0A 09 6C    ffer empty.....l
004110:  64 20 61 2C 28 75 6E 64 65 72 6C 29 3A 20 6F 72    d a,(underl): or
004120:  20 61 3A 20 6A 72 20 7A 2C 70 72 6E 63 6C 70 09     a: jr z,prnclp.
004130:  3B 53 77 69 74 63 68 20 75 6E 64 65 72 6C 69 6E    ;Switch underlin
004140:  65 20 6F 6E 20 69 66 20 6E 65 65 64 65 64 0D 0A    e on if needed..
004150:  09 6C 64 20 61 2C 28 75 6E 64 65 72 63 29 09 09    .ld a,(underc)..
004160:  09 09 3B 20 7C 0D 0A 2E 70 75 74 75 6E 64 09 6C    ..; |...putund.l
004170:  64 20 28 75 6E 64 65 72 6D 2B 31 29 2C 61 09 09    d (underm+1),a..
004180:  09 09 3B 20 7C 0D 0A 0D 0A 2E 70 72 6E 63 6C 70    ..; |.....prnclp
004190:  09 6C 64 20 61 2C 28 69 78 29 20 20 3A 20 63 70    .ld a,(ix)  : cp
0041A0:  20 32 37 20 3A 20 6A 70 20 6E 7A 2C 70 6E 74 65     27 : jp nz,pnte
0041B0:  73 63 09 3B 45 53 43 61 70 65 20 63 6F 64 65 3F    sc.;ESCape code?
0041C0:  0D 0A 09 6C 64 20 61 2C 28 69 78 2B 31 29 3A 20    ...ld a,(ix+1): 
0041D0:  63 70 20 22 50 22 3A 20 6A 72 20 7A 20 2C 73 6B    cp "P": jr z ,sk
0041E0:  69 70 32 09 3B 50 69 74 63 68 20 28 73 6B 69 70    ip2.;Pitch (skip
0041F0:  29 3F 0D 0A 09 09 20 20 20 20 20 63 70 20 22 4D    )?....     cp "M
004200:  22 3A 20 6A 72 20 7A 20 2C 73 6B 69 70 32 09 3B    ": jr z ,skip2.;
004210:  20 7C 0D 0A 09 09 20 20 20 20 20 63 70 20 22 70     |....     cp "p
004220:  22 3A 20 6A 72 20 7A 20 2C 73 6B 69 70 33 09 3B    ": jr z ,skip3.;
004230:  20 7C 0D 0A 09 09 20 20 20 20 20 63 70 20 22 45     |....     cp "E
004240:  22 3A 20 6A 72 20 7A 20 2C 73 65 74 62 6C 64 09    ": jr z ,setbld.
004250:  3B 42 6F 6C 64 3F 0D 0A 09 09 20 20 20 20 20 63    ;Bold?....     c
004260:  70 20 22 46 22 3A 20 6A 72 20 7A 20 2C 72 65 73    p "F": jr z ,res
004270:  62 6C 64 09 3B 20 7C 0D 0A 09 09 20 20 20 20 20    bld.; |....     
004280:  63 70 20 22 2D 22 3A 20 6A 72 20 6E 7A 2C 73 6B    cp "-": jr nz,sk
004290:  69 70 32 09 3B 55 6E 64 65 72 6C 69 6E 65 3F 0D    ip2.;Underline?.
0042A0:  0A 09 6C 64 20 61 2C 28 69 78 2B 32 29 3A 20 63    ..ld a,(ix+2): c
0042B0:  70 20 22 31 22 3A 20 6A 72 20 7A 20 2C 73 65 74    p "1": jr z ,set
0042C0:  75 6E 64 09 3B 20 7C 0D 0A 09 09 20 20 20 20 20    und.; |....     
0042D0:  63 70 20 20 31 20 3A 20 6A 72 20 7A 20 2C 73 65    cp  1 : jr z ,se
0042E0:  74 75 6E 64 09 3B 20 7C 0D 0A 09 78 6F 72 20 61    tund.; |...xor a
0042F0:  20 3A 20 6C 64 20 28 75 6E 64 65 72 6C 29 2C 61     : ld (underl),a
004300:  3B 20 7C 0D 0A 09 20 6F 72 20 28 69 78 2B 32 34    ; |... or (ix+24
004310:  29 3A 20 6F 72 20 28 69 78 2B 33 36 29 3A 20 6A    ): or (ix+36): j
004320:  72 20 7A 2C 67 6F 74 65 6E 64 09 3B 20 7C 0D 0A    r z,gotend.; |..
004330:  09 20 69 6E 63 20 65 3A 20 69 6E 63 20 69 78 09    . inc e: inc ix.
004340:  09 09 09 3B 20 7C 0D 0A 09 20 6C 64 20 61 2C 65    ...; |... ld a,e
004350:  3A 20 63 70 20 31 32 3A 20 6A 72 20 6E 7A 2C 67    : cp 12: jr nz,g
004360:  65 74 6C 6E 6C 09 09 3B 20 7C 0D 0A 2E 67 6F 74    etlnl..; |...got
004370:  65 6E 64 0D 0A 09 20 69 6E 63 20 65 3A 20 69 6E    end... inc e: in
004380:  63 20 65 3A 20 69 6E 63 20 65 3A 20 6C 64 20 61    c e: inc e: ld a
004390:  2C 65 3A 20 73 75 62 20 64 09 3B 43 6F 6D 62 69    ,e: sub d.;Combi
0043A0:  6E 65 20 69 6E 74 6F 20 6F 6E 65 20 62 79 74 65    ne into one byte
0043B0:  0D 0A 09 20 63 70 20 31 32 3A 20 6A 72 20 63 2C    ... cp 12: jr c,
0043C0:  77 69 64 65 6F 6B 3A 20 6C 64 20 61 2C 31 32 09    wideok: ld a,12.
0043D0:  09 3B 20 7C 0D 0A 2E 77 69 64 65 6F 6B 09 20 72    .; |...wideok. r
0043E0:  72 63 20 64 3A 20 72 72 63 20 64 3A 20 72 72 63    rc d: rrc d: rrc
0043F0:  20 64 3A 20 72 72 63 20 64 3A 20 6F 72 20 64 09     d: rrc d: or d.
004400:  3B 20 7C 0D 0A 09 70 6F 70 20 69 78 3A 20 72 65    ; |...pop ix: re
004410:  74 0D 0A 0D 0A 09 3B 2A 2A 2A 20 53 55 42 52 09    t.....;*** SUBR.
004420:  50 72 69 6E 74 20 67 72 61 70 68 69 63 73 20 75    Print graphics u
004430:  73 69 6E 67 20 67 72 61 70 68 69 63 73 20 62 75    sing graphics bu
004440:  66 66 65 72 0D 0A 0D 0A 2E 70 72 6E 67 72 61 09    ffer.....prngra.
004450:  6C 64 20 28 63 68 61 72 29 2C 61 09 09 09 09 09    ld (char),a.....
004460:  3B 42 6F 6C 64 20 74 72 61 6E 73 66 6F 72 6D 61    ;Bold transforma
004470:  74 69 6F 6E 0D 0A 09 6C 64 20 61 2C 28 62 6F 6C    tion...ld a,(bol
004480:  64 29 3A 20 6F 72 20 61 3A 20 6C 64 20 61 2C 28    d): or a: ld a,(
004490:  63 68 61 72 29 3A 20 6A 72 20 7A 2C 6E 6F 62 6F    char): jr z,nobo
0044A0:  74 72 09 3B 20 7C 0D 0A 09 6C 64 20 62 2C 61 3A    tr.; |...ld b,a:
0044B0:  20 6C 64 20 61 2C 28 6C 61 73 74 20 29 3A 20 6F     ld a,(last ): o
0044C0:  72 20 62 09 09 09 3B 20 7C 0D 0A 09 6C 64 20 62    r b...; |...ld b
0044D0:  2C 61 3A 20 6C 64 20 61 2C 28 6C 61 73 74 32 29    ,a: ld a,(last2)
0044E0:  3A 20 6F 72 20 62 09 09 09 3B 20 7C 0D 0A 0D 0A    : or b...; |....
0044F0:  2E 6E 6F 62 6F 74 72 09 6C 64 20 68 6C 2C 28 67    .nobotr.ld hl,(g
004500:  3A 20 6C 64 20 28 75 6E 64 65 72 6D 2B 31 29 2C    : ld (underm+1),
004510:  61 09 3B 55 6E 64 65 72 6C 69 6E 65 20 6F 66 66    a.;Underline off
004520:  0D 0A 09 3A 20 09 09 20 20 20 20 20 20 20 6C 64    ...: ..       ld
004530:  20 64 65 2C 33 3A 20 6A 72 20 64 6E 63 74 09 3B     de,3: jr dnct.;
004540:  20 7C 0D 0A 2E 73 65 74 75 6E 64 09 6C 64 20 61     |...setund.ld a
004550:  2C 28 75 6E 64 65 72 63 29 3A 20 6C 64 20 28 75    ,(underc): ld (u
004560:  6E 64 65 72 6D 2B 31 29 2C 61 09 09 3B 55 6E 64    nderm+1),a..;Und
004570:  65 72 6C 69 6E 65 20 6F 6E 0D 0A 09 6C 64 20 61    erline on...ld a
004580:  2C 31 3A 20 6C 64 20 28 75 6E 64 65 72 6C 29 2C    ,1: ld (underl),
004590:  61 3A 20 6C 64 20 64 65 2C 33 3A 20 6A 72 20 64    a: ld de,3: jr d
0045A0:  6E 63 74 09 3B 20 7C 0D 0A 2E 72 65 73 62 6C 64    nct.; |...resbld
0045B0:  09 78 6F 72 20 61 20 3A 20 6C 64 20 28 62 6F 6C    .xor a : ld (bol
0045C0:  64 20 20 29 2C 61 3A 20 6C 64 20 64 65 2C 32 3A    d  ),a: ld de,2:
0045D0:  20 6A 72 20 64 6E 63 74 09 3B 42 6F 6C 64 20 6F     jr dnct.;Bold o
0045E0:  66 66 0D 0A 2E 73 65 74 62 6C 64 09 6C 64 20 61    ff...setbld.ld a
0045F0:  2C 31 3A 20 6C 64 20 28 62 6F 6C 64 20 20 29 2C    ,1: ld (bold  ),
004600:  61 3A 20 6C 64 20 64 65 2C 32 3A 20 6A 72 20 64    a: ld de,2: jr d
004610:  6E 63 74 09 3B 42 6F 6C 64 20 6F 6E 0D 0A 2E 73    nct.;Bold on...s
004620:  6B 69 70 32 09 6C 64 20 64 65 2C 32 3A 20 6A 72    kip2.ld de,2: jr
004630:  20 64 6E 63 74 09 09 09 3B 4F 74 68 65 72 20 28     dnct...;Other (
004640:  32 20 63 68 61 72 61 63 74 65 72 73 29 0D 0A 2E    2 characters)...
004650:  73 6B 69 70 33 09 6C 64 20 64 65 2C 33 3A 20 6A    skip3.ld de,3: j
004660:  72 20 64 6E 63 74 09 09 09 3B 4F 74 68 65 72 20    r dnct...;Other 
004670:  28 33 20 63 68 61 72 61 63 74 65 72 73 29 0D 0A    (3 characters)..
004680:  2E 64 6E 63 74 09 61 64 64 20 69 78 2C 64 65 3A    .dnct.add ix,de:
004690:  20 61 64 64 20 69 79 2C 64 65 09 09 09 3B 53 6B     add iy,de...;Sk
0046A0:  69 70 20 70 61 73 74 20 63 68 61 72 61 63 74 65    ip past characte
0046B0:  72 73 0D 0A 09 6C 64 20 61 2C 62 3A 20 73 75 62    rs...ld a,b: sub
0046C0:  20 65 3A 20 6C 64 20 62 2C 61 3A 20 69 6E 63 20     e: ld b,a: inc 
0046D0:  62 3A 20 6A 70 20 70 72 6E 5F 63 74 09 3B 20 7C    b: jp prn_ct.; |
0046E0:  0D 0A 0D 0A 2E 70 6E 74 65 73 63 09 6C 64 20 61    .....pntesc.ld a
0046F0:  2C 28 69 78 29 3A 20 73 75 62 20 33 32 09 09 09    ,(ix): sub 32...
004700:  72 61 70 6F 73 29 3A 20 6C 64 20 28 68 6C 29 2C    rapos): ld (hl),
004710:  61 3A 20 69 6E 63 20 68 6C 09 09 3B 53 74 6F 72    a: inc hl..;Stor
004720:  65 20 69 6E 20 62 75 66 66 65 72 0D 0A 09 6C 64    e in buffer...ld
004730:  20 61 20 2C 28 67 72 61 73 6E 74 29 3A 20 69 6E     a ,(grasnt): in
004740:  63 20 61 3A 20 63 70 20 31 32 37 3A 20 6A 72 20    c a: cp 127: jr 
004750:  6E 7A 2C 70 72 6E 5F 6F 6B 09 3B 42 75 66 66 65    nz,prn_ok.;Buffe
004760:  72 20 66 75 6C 6C 3F 0D 0A 09 6C 64 20 62 2C 31    r full?...ld b,1
004770:  32 37 09 09 09 09 09 3B 59 65 73 2C 20 73 6F 20    27.....;Yes, so 
004780:  65 6D 70 74 79 0D 0A 2E 73 65 6E 64 69 74 09 6C    empty...sendit.l
004790:  64 20 61 20 2C 32 37 3A 20 63 61 6C 6C 20 70 72    d a ,27: call pr
0047A0:  6E 3A 20 6C 64 20 61 2C 22 5A 22 3A 20 63 61 6C    n: ld a,"Z": cal
0047B0:  6C 20 70 72 6E 09 09 3B 20 7C 0D 0A 09 6C 64 20    l prn..; |...ld 
0047C0:  61 20 2C 62 20 3A 20 63 61 6C 6C 20 70 72 6E 3A    a ,b : call prn:
0047D0:  20 6C 64 20 61 2C 30 20 20 3A 20 63 61 6C 6C 20     ld a,0  : call 
0047E0:  70 72 6E 09 09 3B 20 7C 0D 0A 09 6C 64 20 68 6C    prn..; |...ld hl
0047F0:  2C 67 72 61 62 75 66 09 09 09 09 09 3B 20 7C 0D    ,grabuf.....; |.
004800:  0A 2E 70 72 6E 65 31 6C 09 6C 64 20 61 2C 28 68    ..prne1l.ld a,(h
004810:  6C 29 3A 20 69 6E 63 20 68 6C 3A 20 63 61 6C 6C    l): inc hl: call
004820:  20 70 72 6E 3A 20 64 6A 6E 7A 20 70 72 6E 65 31     prn: djnz prne1
004830:  6C 09 3B 20 7C 0D 0A 09 6C 64 20 68 6C 2C 67 72    l.; |...ld hl,gr
004840:  61 62 75 66 3A 20 78 6F 72 20 61 09 09 09 09 3B    abuf: xor a....;
004850:  20 7C 20 61 6E 64 20 72 65 73 65 74 0D 0A 2E 70     | and reset...p
004860:  72 6E 5F 6F 6B 09 6C 64 20 28 67 72 61 70 6F 73    rn_ok.ld (grapos
004870:  29 2C 68 6C 3A 20 6C 64 20 28 67 72 61 73 6E 74    ),hl: ld (grasnt
004880:  29 2C 61 09 09 09 3B 53 74 6F 72 65 20 6E 65 77    ),a...;Store new
004890:  20 70 6F 73 69 74 69 6F 6E 0D 0A 0D 0A 09 6C 64     position.....ld
0048A0:  20 61 2C 28 6C 61 73 74 29 3A 20 6C 64 20 28 6C     a,(last): ld (l
0048B0:  61 73 74 32 29 2C 61 09 09 09 3B 42 6F 6C 64 20    ast2),a...;Bold 
0048C0:  74 72 61 6E 73 66 6F 72 6D 61 74 69 6F 6E 0D 0A    transformation..
0048D0:  09 6C 64 20 61 2C 28 63 68 61 72 29 3A 20 6C 64    .ld a,(char): ld
0048E0:  20 28 6C 61 73 74 20 29 2C 61 3A 20 72 65 74 09     (last ),a: ret.
0048F0:  09 09 3B 20 7C 0D 0A 0D 0A 09 3B 2A 2A 2A 20 53    ..; |.....;*** S
004900:  3B 47 65 74 20 63 68 61 72 61 63 74 65 72 20 62    ;Get character b
004910:  61 73 65 20 61 64 64 72 65 73 73 0D 0A 09 3A 20    ase address...: 
004920:  6C 64 20 6C 2C 61 3A 20 6C 64 20 68 2C 30 3A 20    ld l,a: ld h,0: 
004930:  61 64 64 20 68 6C 2C 68 6C 3A 20 61 64 64 20 68    add hl,hl: add h
004940:  6C 2C 68 6C 09 3B 20 7C 0D 0A 09 3A 20 61 64 64    l,hl.; |...: add
004950:  20 68 6C 2C 68 6C 3A 20 61 64 64 20 68 6C 2C 68     hl,hl: add hl,h
004960:  6C 3A 20 70 75 73 68 20 68 6C 09 09 3B 20 7C 0D    l: push hl..; |.
004970:  0A 09 3A 20 61 64 64 20 68 6C 2C 68 6C 3A 20 70    ..: add hl,hl: p
004980:  6F 70 20 64 65 3A 20 61 64 64 20 68 6C 2C 64 65    op de: add hl,de
004990:  09 09 3B 20 7C 0D 0A 09 3A 20 6C 64 20 64 65 2C    ..; |...: ld de,
0049A0:  28 62 61 73 65 29 3A 20 61 64 64 20 68 6C 2C 64    (base): add hl,d
0049B0:  65 09 09 3B 20 7C 0D 0A 09 6C 64 20 61 2C 28 69    e..; |...ld a,(i
0049C0:  79 29 3A 20 61 6E 64 20 26 46 30 09 09 09 3B 41    y): and &F0...;A
0049D0:  64 6A 75 73 74 20 74 6F 20 63 6F 72 72 65 63 74    djust to correct
0049E0:  20 73 74 61 72 74 0D 0A 2E 73 74 74 74 6C 70 09     start...stttlp.
0049F0:  3A 20 6F 72 20 61 3A 20 6A 72 20 7A 2C 67 6F 74    : or a: jr z,got
004A00:  73 74 74 09 09 09 3B 20 7C 20 7C 0D 0A 09 3A 20    stt...; | |...: 
004A10:  69 6E 63 20 68 6C 3A 20 73 75 62 20 26 31 30 3A    inc hl: sub &10:
004A20:  20 6A 72 20 73 74 74 74 6C 70 09 09 3B 20 7C 20     jr stttlp..; | 
004A30:  7C 0D 0A 2E 67 6F 74 73 74 74 0D 0A 09 70 75 73    |...gotstt...pus
004A40:  68 20 62 63 3A 20 65 78 20 64 65 2C 68 6C 09 09    h bc: ex de,hl..
004A50:  09 3B 50 72 69 6E 74 20 63 68 61 72 61 63 74 65    .;Print characte
004A60:  72 0D 0A 09 20 6C 64 20 61 2C 28 69 79 29 3A 20    r... ld a,(iy): 
004A70:  61 6E 64 20 26 46 3A 20 6C 64 20 63 2C 61 09 09    and &F: ld c,a..
004A80:  3B 20 7C 0D 0A 2E 70 62 69 74 6C 70 09 20 6C 64    ; |...pbitlp. ld
004A90:  20 61 2C 28 64 65 29 3A 20 69 6E 63 20 64 65 09     a,(de): inc de.
004AA0:  09 09 3B 20 7C 0D 0A 2E 75 6E 64 65 72 6D 09 20    ..; |...underm. 
004AB0:  6F 72 20 30 3A 20 63 61 6C 6C 20 70 72 6E 67 72    or 0: call prngr
004AC0:  61 09 09 09 3B 20 7C 0D 0A 09 20 64 65 63 20 63    a...; |... dec c
004AD0:  3A 20 6A 72 20 6E 7A 2C 70 62 69 74 6C 70 09 09    : jr nz,pbitlp..
004AE0:  09 3B 20 7C 0D 0A 09 70 6F 70 20 62 63 09 09 09    .; |...pop bc...
004AF0:  09 09 3B 20 7C 0D 0A 0D 0A 09 69 6E 63 20 69 78    ..; |.....inc ix
004B00:  2C 61 3A 20 6C 64 20 63 2C 61 09 09 09 3B 20 7C    ,a: ld c,a...; |
004B10:  20 73 74 6F 72 65 20 6E 65 77 20 70 69 74 63 68     store new pitch
004B20:  0D 0A 2E 64 6E 09 20 61 64 64 20 69 78 2C 64 65    ...dn. add ix,de
004B30:  3A 20 61 64 64 20 69 79 2C 64 65 09 09 09 3B 20    : add iy,de...; 
004B40:  7C 20 61 64 76 61 6E 63 65 20 74 68 72 6F 75 67    | advance throug
004B50:  68 20 62 75 66 66 65 72 0D 0A 09 20 6C 64 20 61    h buffer... ld a
004B60:  2C 62 3A 20 73 75 62 20 65 3A 20 6C 64 20 62 2C    ,b: sub e: ld b,
004B70:  61 3A 20 69 6E 63 20 62 3A 20 6A 72 20 73 70 63    a: inc b: jr spc
004B80:  63 74 09 3B 20 7C 20 20 7C 0D 0A 0D 0A 2E 6E 6F    ct.; |  |.....no
004B90:  74 65 73 63 09 20 6C 64 20 64 2C 61 3A 20 6C 64    tesc. ld d,a: ld
004BA0:  20 61 2C 28 69 74 61 6C 69 63 29 3A 20 61 64 64     a,(italic): add
004BB0:  20 64 3A 20 6C 64 20 28 69 78 29 2C 61 3B 43 6F     d: ld (ix),a;Co
004BC0:  6E 76 65 72 74 20 74 6F 20 69 74 61 6C 69 63 73    nvert to italics
004BD0:  3F 0D 0A 09 20 6C 64 20 61 2C 63 3A 20 6F 72 20    ?... ld a,c: or 
004BE0:  61 3A 20 63 61 6C 6C 20 7A 2C 67 65 74 70 72 70    a: call z,getprp
004BF0:  09 09 3B 47 65 74 20 70 72 6F 70 6F 72 74 69 6F    ..;Get proportio
004C00:  6E 61 6C 20 76 61 6C 75 65 3F 0D 0A 09 20 6C 64    nal value?... ld
004C10:  20 28 69 79 29 2C 61 3A 20 69 6E 63 20 69 79 3A     (iy),a: inc iy:
004C20:  20 69 6E 63 20 69 78 09 09 3B 53 74 6F 72 65 20     inc ix..;Store 
004C30:  73 70 61 63 65 20 69 6E 20 62 75 66 66 65 72 0D    space in buffer.
004C40:  0A 2E 73 70 63 63 74 09 20 64 65 63 20 62 3A 20    ..spcct. dec b: 
004C50:  6A 70 20 6E 7A 2C 73 70 63 5F 6C 70 09 09 09 3B    jp nz,spc_lp...;
004C60:  4C 6F 6F 70 0D 0A 2E 6E 6F 73 70 61 63 0D 0A 09    Loop...nospac...
004C70:  20 3B 09 09 53 74 61 67 65 20 32 20 2D 20 70 72     ;..Stage 2 - pr
004C80:  69 6E 74 20 6C 69 6E 65 73 0D 0A 0D 0A 09 20 6C    int lines..... l
004C90:  64 20 63 2C 31 20 3A 20 6C 64 20 68 6C 2C 6C 6F    d c,1 : ld hl,lo
004CA0:  61 64 20 20 20 3A 20 63 61 6C 6C 20 70 72 69 6E    ad   : call prin
004CB0:  74 0D 0A 09 20 6C 64 20 63 2C 32 30 3A 20 6C 64    t... ld c,20: ld
004CC0:  20 68 6C 2C 6C 6F 61 64 2B 31 32 3A 20 63 61 6C     hl,load+12: cal
004CD0:  6C 20 70 72 69 6E 74 0D 0A 09 20 6C 64 20 63 2C    l print... ld c,
004CE0:  31 20 3A 20 6C 64 20 68 6C 2C 6C 6F 61 64 2B 32    1 : ld hl,load+2
004CF0:  34 3A 20 63 61 6C 6C 20 70 72 69 6E 74 3A 20 6C    4: call print: l
004D00:  54 72 61 63 6B 2D 49 6E 66 6F 0D 0A 00 00 00 00    Track-Info......
004D10:  04 00 01 00 02 09 4E E5 04 00 C9 02 00 00 00 02    ......N.........
004D20:  04 00 C5 02 00 00 00 02 04 00 C1 02 00 00 00 02    ................
004D30:  04 00 C6 02 00 00 00 02 04 00 C2 02 00 00 00 02    ................
004D40:  04 00 C7 02 00 00 00 02 04 00 C3 02 00 00 00 02    ................
004D50:  04 00 C8 02 00 00 00 02 04 00 C4 02 00 00 00 02    ................
004D60:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
004D70:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
004D80:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
004D90:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
004DA0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
004DB0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
004DC0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
004DD0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
004DE0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
004DF0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
004E00:  6F 72 20 69 6E 20 6F 70 65 6E 69 6E 67 0D 0A 0D    or in opening...
004E10:  0A 2E 6F 70 65 6E 65 72 09 63 61 6C 6C 20 26 42    ..opener.call &B
004E20:  43 37 44 3A 20 63 61 6C 6C 20 26 39 32 38 44 0D    C7D: call &928D.
004E30:  0A 09 63 61 6C 6C 20 73 74 61 74 73 3A 20 63 61    ..call stats: ca
004E40:  6C 6C 20 63 61 72 64 20 3A 20 6A 70 20 6B 65 79    ll card : jp key
004E50:  73 0D 0A 0D 0A 0D 0A 09 3B 2B 2B 2B 20 52 4F 55    s.......;+++ ROU
004E60:  54 09 53 61 76 65 20 64 61 74 61 62 61 73 65 0D    T.Save database.
004E70:  0A 0D 0A 2E 73 61 76 65 09 6C 64 20 68 2C 33 31    ....save.ld h,31
004E80:  3A 20 6C 64 20 6C 2C 38 30 0D 0A 09 6C 64 20 64    : ld l,80...ld d
004E90:  2C 31 38 3A 20 6C 64 20 65 2C 34 34 0D 0A 09 63    ,18: ld e,44...c
004EA0:  61 6C 6C 20 26 39 32 33 46 0D 0A 09 63 61 6C 6C    all &923F...call
004EB0:  20 26 39 32 38 31 0D 0A 09 63 61 6C 6C 20 26 39     &9281...call &9
004EC0:  32 38 41 0D 0A 09 6C 64 20 64 65 2C 37 39 3A 20    28A...ld de,79: 
004ED0:  63 61 6C 6C 20 26 39 32 37 38 0D 0A 0D 0A 09 6C    call &9278.....l
004EE0:  64 20 68 6C 2C 73 61 76 65 74 78 3A 20 63 61 6C    d hl,savetx: cal
004EF0:  6C 20 26 39 32 30 33 0D 0A 09 6C 64 20 64 2C 33    l &9203...ld d,3
004F00:  33 3A 20 6C 64 20 65 2C 31 30 38 3A 20 6F 72 20    3: ld e,108: or 
004F10:  61 0D 0A 09 6C 64 20 63 2C 31 33 3A 20 6C 64 20    a...ld c,13: ld 
004F20:  68 6C 2C 66 6E 61 6D 65 3A 20 63 61 6C 6C 20 26    hl,fname: call &
004F30:  39 32 37 32 0D 0A 09 6A 70 20 63 2C 73 61 76 65    9272...jp c,save
004F40:  65 72 0D 0A 0D 0A 09 6C 64 20 62 2C 63 3A 20 6C    er.....ld b,c: l
004F50:  64 20 68 6C 2C 66 6E 61 6D 65 09 09 09 3B 4F 70    d hl,fname...;Op
004F60:  65 6E 20 66 69 6C 65 0D 0A 09 6C 64 20 64 65 2C    en file...ld de,
004F70:  26 43 30 30 30 3A 20 63 61 6C 6C 20 26 42 43 38    &C000: call &BC8
004F80:  43 3A 20 6A 70 20 6E 63 2C 73 61 76 65 65 72 09    C: jp nc,saveer.
004F90:  3B 20 7C 0D 0A 09 6C 64 20 68 6C 2C 28 6C 61 73    ; |...ld hl,(las
004FA0:  74 61 64 29 3A 20 6C 64 20 64 65 2C 66 6E 61 6D    tad): ld de,fnam
004FB0:  65 3A 20 6F 72 20 61 09 3B 53 61 76 65 0D 0A 09    e: or a.;Save...
004FC0:  73 62 63 20 68 6C 2C 64 65 3A 20 65 78 20 64 65    sbc hl,de: ex de
004FD0:  2C 68 6C 09 09 09 3B 20 7C 20 63 61 6C 63 75 6C    ,hl...; | calcul
004FE0:  61 74 65 20 6C 65 6E 67 74 68 0D 0A 09 6C 64 20    ate length...ld 
004FF0:  68 6C 2C 66 6E 61 6D 65 3A 20 6C 64 20 62 63 2C    hl,fname: ld bc,
005000:  0D 0A 09 3B 44 65 73 6B 74 6F 70 20 4F 72 67 61    ...;Desktop Orga
005010:  6E 69 73 65 0D 0A 09 3B 63 61 74 61 6C 6F 67 75    nise...;catalogu
005020:  65 2F 61 72 63 68 69 76 65 20 73 79 73 74 65 6D    e/archive system
005030:  20 66 6F 72 20 44 45 53 0D 0A 09 3B 28 63 29 20     for DES...;(c) 
005040:  52 69 63 68 61 72 64 20 46 61 69 72 68 75 72 73    Richard Fairhurs
005050:  74 20 31 39 39 34 0D 0A 0D 0A 09 6F 72 67 20 26    t 1994.....org &
005060:  33 30 30 30 0D 0A 09 77 72 69 74 65 20 22 63 61    3000...write "ca
005070:  74 2E 62 69 6E 22 0D 0A 09 6E 6F 6C 69 73 74 0D    t.bin"...nolist.
005080:  0A 0D 0A 09 3B 76 31 2E 31 20 20 2D 20 6E 61 6D    ....;v1.1  - nam
005090:  65 20 63 68 65 63 6B 69 6E 67 20 6F 6E 20 72 65    e checking on re
0050A0:  73 74 6F 72 65 0D 0A 09 3B 20 20 20 20 20 20 20    store...;       
0050B0:  20 66 6F 72 6D 61 74 20 6F 70 74 69 6F 6E 0D 0A     format option..
0050C0:  09 3B 76 31 2E 31 31 20 2D 20 62 75 67 20 66 69    .;v1.11 - bug fi
0050D0:  78 20 28 2E 73 74 61 74 73 32 20 65 6E 74 72 79    x (.stats2 entry
0050E0:  20 70 6F 69 6E 74 20 61 64 64 65 64 29 0D 0A 0D     point added)...
0050F0:  0A 09 3B 2A 2A 2A 20 49 4E 49 54 09 44 45 53 20    ..;*** INIT.DES 
005100:  6C 6F 61 64 65 72 0D 0A 0D 0A 09 64 62 20 22 44    loader.....db "D
005110:  45 53 20 41 50 50 4C 49 43 41 54 49 4F 4E 3A 22    ES APPLICATION:"
005120:  0D 0A 09 64 77 20 26 33 30 30 30 0D 0A 0D 0A 09    ...dw &3000.....
005130:  70 75 73 68 20 62 63 3A 20 70 75 73 68 20 68 6C    push bc: push hl
005140:  0D 0A 09 20 63 61 6C 6C 20 6D 63 6F 64 65 0D 0A    ... call mcode..
005150:  09 70 6F 70 20 68 6C 3A 20 70 6F 70 20 62 63 0D    .pop hl: pop bc.
005160:  0A 09 6A 70 20 26 31 42 0D 0A 0D 0A 09 3B 2A 2A    ..jp &1B.....;**
005170:  2A 20 49 4E 49 54 09 53 63 72 65 65 6E 20 69 6E    * INIT.Screen in
005180:  69 74 69 61 6C 69 73 61 74 69 6F 6E 0D 0A 0D 0A    itialisation....
005190:  2E 6D 63 6F 64 65 09 6C 64 20 62 2C 37 3A 20 6C    .mcode.ld b,7: l
0051A0:  64 20 68 6C 2C 6D 61 69 6E 66 6E 09 09 09 3B 4F    d hl,mainfn...;O
0051B0:  70 65 6E 20 22 4D 41 49 4E 2E 46 4E 22 0D 0A 09    pen "MAIN.FN"...
0051C0:  6C 64 20 64 65 2C 26 43 30 30 30 3A 20 63 61 6C    ld de,&C000: cal
0051D0:  6C 20 26 42 43 37 37 09 09 09 3B 20 7C 0D 0A 09    l &BC77...; |...
0051E0:  6C 64 20 68 6C 2C 66 6E 61 6D 65 3A 20 63 61 6C    ld hl,fname: cal
0051F0:  6C 20 26 42 43 38 33 09 09 09 3B 4C 6F 61 64 20    l &BC83...;Load 
005200:  55 42 52 09 45 6D 70 74 79 20 67 72 61 70 68 69    UBR.Empty graphi
005210:  63 73 20 62 75 66 66 65 72 0D 0A 0D 0A 2E 65 6D    cs buffer.....em
005220:  70 74 79 67 09 6C 64 20 61 2C 28 67 72 61 73 6E    ptyg.ld a,(grasn
005230:  74 29 3A 20 6F 72 20 61 3A 20 72 65 74 20 7A 3A    t): or a: ret z:
005240:  20 6C 64 20 62 2C 61 3A 20 6A 72 20 73 65 6E 64     ld b,a: jr send
005250:  69 74 0D 0A 0D 0A 09 3B 2A 2A 2A 20 53 55 42 52    it.....;*** SUBR
005260:  09 50 72 69 6E 74 20 63 68 61 72 61 63 74 65 72    .Print character
005270:  0D 0A 0D 0A 2E 70 72 6E 09 70 75 73 68 20 62 63    .....prn.push bc
005280:  3A 20 6C 64 20 63 2C 61 0D 0A 2E 70 72 6E 74 72    : ld c,a...prntr
005290:  79 09 20 6C 64 20 61 2C 63 3A 20 63 61 6C 6C 20    y. ld a,c: call 
0052A0:  73 74 6F 72 69 67 3A 20 6A 72 20 6E 63 2C 70 72    storig: jr nc,pr
0052B0:  6E 74 72 79 0D 0A 09 70 6F 70 20 62 63 3A 20 72    ntry...pop bc: r
0052C0:  65 74 0D 0A 0D 0A 09 3B 2A 2A 2A 20 56 41 52 53    et.....;*** VARS
0052D0:  09 4D 69 73 63 65 6C 6C 61 6E 65 6F 75 73 0D 0A    .Miscellaneous..
0052E0:  0D 0A 2E 73 74 6F 72 69 67 09 64 73 20 33 09 09    ...storig.ds 3..
0052F0:  09 09 09 3B 4F 72 69 67 69 6E 61 6C 20 26 42 44    ...;Original &BD
005300:  32 42 20 72 6F 75 74 69 6E 65 0D 0A 2E 62 61 73    2B routine...bas
005310:  65 09 64 77 20 6C 6F 61 64 09 09 09 09 09 3B 42    e.dw load.....;B
005320:  61 73 65 20 6F 66 20 63 68 61 72 61 63 74 65 72    ase of character
005330:  73 20 66 6F 72 20 74 68 69 73 20 72 75 6E 0D 0A    s for this run..
005340:  0D 0A 2E 62 75 66 70 6F 73 09 64 77 20 63 68 61    ...bufpos.dw cha
005350:  72 73 09 09 09 09 3B 50 6F 73 69 74 69 6F 6E 20    rs....;Position 
005360:  69 6E 20 62 75 66 66 65 72 0D 0A 2E 70 6F 73 09    in buffer...pos.
005370:  64 62 20 30 09 09 09 09 09 3B 4E 75 6D 62 65 72    db 0.....;Number
005380:  20 6F 66 20 63 68 61 72 61 63 74 65 72 73 20 77     of characters w
005390:  72 69 74 74 65 6E 0D 0A 0D 0A 2E 70 69 74 63 68    ritten.....pitch
0053A0:  09 64 62 20 30 09 09 09 09 09 3B 43 68 61 72 61    .db 0.....;Chara
0053B0:  63 74 65 72 20 70 69 74 63 68 20 28 31 30 2F 31    cter pitch (10/1
0053C0:  32 2F 30 3D 70 72 70 6E 2E 29 0D 0A 2E 70 72 76    2/0=prpn.)...prv
0053D0:  70 74 63 09 64 62 20 30 09 09 09 09 09 3B 50 72    ptc.db 0.....;Pr
0053E0:  65 76 69 6F 75 73 20 63 68 61 72 61 63 74 65 72    evious character
0053F0:  20 70 69 74 63 68 0D 0A 2E 62 6F 6C 64 09 64 62     pitch...bold.db
005400:  66 69 6C 65 0D 0A 09 63 61 6C 6C 20 26 42 43 37    file...call &BC7
005410:  41 0D 0A 0D 0A 09 6C 64 20 61 2C 28 6C 73 74 72    A.....ld a,(lstr
005420:  65 63 29 3A 20 63 61 6C 6C 20 73 74 61 74 73 32    ec): call stats2
005430:  0D 0A 09 61 64 64 20 68 6C 2C 64 65 3A 20 6C 64    ...add hl,de: ld
005440:  20 28 6C 61 73 74 61 64 29 2C 68 6C 0D 0A 0D 0A     (lastad),hl....
005450:  09 6C 64 20 64 65 2C 37 39 20 20 3A 20 63 61 6C    .ld de,79  : cal
005460:  6C 20 26 39 32 37 38 0D 0A 09 6C 64 20 68 6C 2C    l &9278...ld hl,
005470:  6D 62 61 72 3A 20 63 61 6C 6C 20 26 39 32 34 35    mbar: call &9245
005480:  0D 0A 09 63 61 6C 6C 20 73 74 61 74 73 3A 20 63    ...call stats: c
005490:  61 6C 6C 20 63 61 72 64 0D 0A 0D 0A 09 3B 09 09    all card.....;..
0054A0:  49 6E 69 74 69 61 6C 69 73 65 20 63 6C 69 63 6B    Initialise click
0054B0:  20 7A 6F 6E 65 73 0D 0A 0D 0A 2E 6B 65 79 73 09     zones.....keys.
0054C0:  63 61 6C 6C 20 26 39 32 43 30 09 09 09 09 3B 43    call &92C0....;C
0054D0:  6C 65 61 72 20 61 6C 6C 20 63 6C 69 63 6B 20 7A    lear all click z
0054E0:  6F 6E 65 73 0D 0A 09 6C 64 20 62 2C 31 39 3A 20    ones...ld b,19: 
0054F0:  6C 64 20 68 6C 2C 7A 6F 6E 65 73 20 3A 20 63 61    ld hl,zones : ca
005500:  6C 6C 20 26 39 32 43 33 09 3B 53 65 74 20 75 70    ll &92C3.;Set up
005510:  20 63 6C 69 63 6B 20 7A 6F 6E 65 73 0D 0A 09 6C     click zones...l
005520:  64 20 62 2C 31 33 3A 20 6C 64 20 68 6C 2C 6B 7A    d b,13: ld hl,kz
005530:  6F 6E 65 73 3A 20 63 61 6C 6C 20 26 39 32 43 43    ones: call &92CC
005540:  09 3B 53 65 74 20 75 70 20 73 68 6F 72 74 63 75    .;Set up shortcu
005550:  74 20 6B 65 79 73 0D 0A 0D 0A 09 3B 2A 2A 2A 20    t keys.....;*** 
005560:  53 45 43 54 09 4D 61 69 6E 20 6C 6F 6F 70 0D 0A    SECT.Main loop..
005570:  0D 0A 2E 6D 6F 75 73 65 09 63 61 6C 6C 20 26 39    ...mouse.call &9
005580:  32 36 39 09 09 09 09 3B 57 61 69 74 20 66 6F 72    269....;Wait for
005590:  20 72 65 6C 65 61 73 65 20 6F 66 20 63 6C 69 63     release of clic
0055A0:  6B 20 6B 65 79 73 0D 0A 2E 6D 6E 63 09 63 61 6C    k keys...mnc.cal
0055B0:  6C 20 26 39 32 36 33 09 09 09 09 3B 4D 6F 75 73    l &9263....;Mous
0055C0:  65 20 72 6F 75 74 69 6E 65 0D 0A 2E 73 65 6C 65    e routine...sele
0055D0:  63 74 09 63 70 20 31 20 3A 20 6A 70 20 20 7A 2C    ct.cp 1 : jp  z,
0055E0:  66 69 6C 65 20 20 3A 09 63 70 20 32 20 3A 20 6A    file  :.cp 2 : j
0055F0:  70 20 20 7A 2C 64 69 73 63 0D 0A 09 63 70 20 33    p  z,disc...cp 3
005600:  20 30 09 09 09 09 09 3B 42 6F 6C 64 3F 0D 0A 2E     0.....;Bold?...
005610:  69 74 61 6C 69 63 09 64 62 20 30 09 09 09 09 09    italic.db 0.....
005620:  3B 49 74 61 6C 69 63 73 3F 0D 0A 2E 63 75 72 69    ;Italics?...curi
005630:  74 61 09 64 62 20 30 09 09 09 09 09 3B 49 74 61    ta.db 0.....;Ita
005640:  6C 69 63 73 3F 20 28 63 68 61 72 61 63 74 65 72    lics? (character
005650:  20 61 73 73 65 73 73 6D 65 6E 74 29 0D 0A 2E 75     assessment)...u
005660:  6E 64 65 72 6C 09 64 62 20 30 09 09 09 09 09 3B    nderl.db 0.....;
005670:  55 6E 64 65 72 6C 69 6E 65 3F 0D 0A 2E 75 6E 64    Underline?...und
005680:  65 72 63 09 64 62 20 30 09 09 09 09 09 3B 55 6E    erc.db 0.....;Un
005690:  64 65 72 6C 69 6E 65 3F 20 28 4F 52 20 62 79 74    derline? (OR byt
0056A0:  65 20 74 6F 20 75 73 65 29 0D 0A 0D 0A 2E 6C 61    e to use).....la
0056B0:  73 74 09 64 62 20 30 09 09 09 09 09 3B 4C 61 73    st.db 0.....;Las
0056C0:  74 20 63 68 61 72 61 63 74 65 72 20 20 20 20 20    t character     
0056D0:  20 20 20 28 62 6F 6C 64 29 0D 0A 2E 6C 61 73 74       (bold)...last
0056E0:  32 09 64 62 20 30 09 09 09 09 09 3B 43 68 61 72    2.db 0.....;Char
0056F0:  61 63 74 65 72 20 62 65 66 6F 72 65 20 74 68 61    acter before tha
005700:  74 20 28 62 6F 6C 64 29 0D 0A 2E 63 68 61 72 09    t (bold)...char.
005710:  64 62 20 30 09 09 09 09 09 3B 43 75 72 72 65 6E    db 0.....;Curren
005720:  74 20 63 68 61 72 61 63 74 65 72 20 20 20 20 20    t character     
005730:  28 62 6F 6C 64 29 0D 0A 0D 0A 09 3B 2A 2A 2A 20    (bold).....;*** 
005740:  56 41 52 53 09 47 72 61 70 68 69 63 73 20 62 75    VARS.Graphics bu
005750:  66 66 65 72 0D 0A 0D 0A 2E 67 72 61 73 6E 74 09    ffer.....grasnt.
005760:  64 62 20 30 09 09 09 09 09 3B 4E 75 6D 62 65 72    db 0.....;Number
005770:  20 6F 66 20 63 68 61 72 61 63 74 65 72 73 20 73     of characters s
005780:  65 6E 74 0D 0A 2E 67 72 61 70 6F 73 09 64 77 20    ent...grapos.dw 
005790:  67 72 61 62 75 66 09 09 09 09 3B 50 6F 73 69 74    grabuf....;Posit
0057A0:  69 6F 6E 20 69 6E 20 62 75 66 66 65 72 0D 0A 2E    ion in buffer...
0057B0:  67 72 61 62 75 66 09 64 73 20 31 32 38 09 09 09    grabuf.ds 128...
0057C0:  09 09 3B 42 75 66 66 65 72 0D 0A 0D 0A 09 3B 2A    ..;Buffer.....;*
0057D0:  2A 2A 20 56 41 52 53 09 43 68 61 72 61 63 74 65    ** VARS.Characte
0057E0:  72 2F 73 70 61 63 69 6E 67 20 62 75 66 66 65 72    r/spacing buffer
0057F0:  73 0D 0A 0D 0A 2E 63 68 61 72 73 09 64 73 20 32    s.....chars.ds 2
005800:  20 3A 20 6A 70 20 20 7A 2C 73 65 61 72 63 68 3A     : jp  z,search:
005810:  09 63 70 20 34 20 3A 20 6A 70 20 20 7A 2C 61 72    .cp 4 : jp  z,ar
005820:  63 68 69 76 0D 0A 09 63 70 20 35 20 3A 20 6A 70    chiv...cp 5 : jp
005830:  20 20 7A 2C 6F 70 65 6E 20 20 3A 09 63 70 20 36      z,open  :.cp 6
005840:  20 3A 20 6A 70 20 20 7A 2C 73 61 76 65 0D 0A 09     : jp  z,save...
005850:  63 70 20 38 20 3A 20 6A 70 20 20 7A 2C 6C 6F 67    cp 8 : jp  z,log
005860:  69 6E 20 3A 09 63 70 20 39 20 3A 20 6A 70 20 20    in :.cp 9 : jp  
005870:  7A 2C 75 70 64 61 74 65 0D 0A 09 63 70 20 31 30    z,update...cp 10
005880:  3A 20 6A 70 20 20 7A 2C 70 72 72 65 63 20 3A 09    : jp  z,prrec :.
005890:  63 70 20 31 31 3A 20 6A 70 20 20 7A 2C 67 6F 74    cp 11: jp  z,got
0058A0:  6F 0D 0A 09 63 70 20 31 32 3A 20 6A 70 20 20 7A    o...cp 12: jp  z
0058B0:  2C 64 72 69 76 65 61 3A 09 63 70 20 31 33 3A 20    ,drivea:.cp 13: 
0058C0:  6A 70 20 20 7A 2C 64 72 69 76 65 62 0D 0A 09 63    jp  z,driveb...c
0058D0:  70 20 31 34 3A 20 6A 70 20 20 7A 2C 66 69 6E 64    p 14: jp  z,find
0058E0:  20 20 3A 09 63 70 20 31 35 3A 20 6A 70 20 20 7A      :.cp 15: jp  z
0058F0:  2C 6E 65 78 74 0D 0A 09 63 70 20 31 36 3A 20 6A    ,next...cp 16: j
005900:  70 20 20 7A 2C 63 72 65 61 74 65 3A 09 63 70 20    p  z,create:.cp 
005910:  31 37 3A 20 6A 70 20 20 7A 2C 72 65 73 74 6F 72    17: jp  z,restor
005920:  0D 0A 09 63 70 20 31 38 3A 20 6A 70 20 20 7A 2C    ...cp 18: jp  z,
005930:  66 63 5F 64 6E 20 3A 09 63 70 20 31 39 3A 20 6A    fc_dn :.cp 19: j
005940:  70 20 20 7A 2C 66 63 5F 75 70 0D 0A 09 63 70 20    p  z,fc_up...cp 
005950:  37 20 3A 20 72 65 74 20 7A 20 20 20 20 20 20 20    7 : ret z       
005960:  3A 09 6A 70 20 6D 6F 75 73 65 0D 0A 0D 0A 09 3B    :.jp mouse.....;
005970:  2A 2A 2A 20 4D 45 4E 55 09 46 69 6C 65 20 6D 65    *** MENU.File me
005980:  6E 75 0D 0A 0D 0A 2E 66 69 6C 65 09 6C 64 20 68    nu.....file.ld h
005990:  6C 2C 6D 66 69 6C 65 3A 20 6C 64 20 64 65 2C 69    l,mfile: ld de,i
0059A0:  66 69 6C 65 0D 0A 09 63 61 6C 6C 20 26 39 32 37    file...call &927
0059B0:  45 3A 20 6A 70 20 63 2C 73 65 6C 65 63 74 3A 20    E: jp c,select: 
0059C0:  63 70 20 26 46 46 3A 20 6A 70 20 7A 2C 6D 6F 75    cp &FF: jp z,mou
0059D0:  73 65 0D 0A 09 63 70 20 31 3A 20 6A 70 20 20 7A    se...cp 1: jp  z
0059E0:  2C 6F 70 65 6E 0D 0A 09 63 70 20 32 3A 20 6A 70    ,open...cp 2: jp
0059F0:  20 20 7A 2C 73 61 76 65 0D 0A 09 63 70 20 33 3A      z,save...cp 3:
005A00:  35 36 0D 0A 2E 73 70 61 63 65 73 09 64 73 20 32    56...spaces.ds 2
005A10:  35 36 0D 0A 1A 09 3B 28 63 29 20 52 69 63 68 61    56....;(c) Richa
005A20:  72 64 20 46 61 69 72 68 75 72 73 74 20 41 70 72    rd Fairhurst Apr
005A30:  69 6C 20 31 39 39 35 0D 0A 0D 0A 09 6F 72 67 20    il 1995.....org 
005A40:  26 39 41 30 30 0D 0A 09 77 72 69 74 65 20 22 69    &9A00...write "i
005A50:  6D 61 67 65 2E 62 69 6E 22 0D 0A 09 6E 6F 6C 69    mage.bin"...noli
005A60:  73 74 0D 0A 0D 0A 6C 6F 61 64 09 65 71 75 20 26    st....load.equ &
005A70:  36 36 30 30 0D 0A 0D 0A 09 3B 2A 2A 2A 20 52 4F    6600.....;*** RO
005A80:  65 72 63 09 64 62 20 30 09 09 09 09 09 3B 55 6E    erc.db 0.....;Un
005A90:  64 65 72 6C 69 6E 65 3F 20 28 4F 52 20 62 79 74    derline? (OR byt
005AA0:  65 20 74 6F 20 75 73 65 29 0D 0A 0D 0A 2E 6C 61    e to use).....la
005AB0:  73 74 09 64 62 20 30 09 09 09 09 09 3B 4C 61 73    st.db 0.....;Las
005AC0:  74 20 63 68 61 72 61 63 74 65 72 20 20 20 20 20    t character     
005AD0:  20 20 20 28 62 6F 6C 64 29 0D 0A 2E 6C 61 73 74       (bold)...last
005AE0:  32 09 64 62 20 30 09 09 09 09 09 3B 43 68 61 72    2.db 0.....;Char
005AF0:  61 63 74 65 72 20 62 65 66 6F 72 65 20 74 68 61    acter before tha
005B00:  74 20 28 62 6F 6C 64 29 0D 0A 2E 63 68 61 72 09    t (bold)...char.
005B10:  64 62 20 30 09 09 09 09 09 3B 43 75 72 72 65 6E    db 0.....;Curren
005B20:  74 20 63 68 61 72 61 63 74 65 72 20 20 20 20 20    t character     
005B30:  28 62 6F 6C 64 29 0D 0A 0D 0A 09 3B 2A 2A 2A 20    (bold).....;*** 
005B40:  56 41 52 53 09 47 72 61 70 68 69 63 73 20 62 75    VARS.Graphics bu
005B50:  66 66 65 72 0D 0A 0D 0A 2E 67 72 61 73 6E 74 09    ffer.....grasnt.
005B60:  64 62 20 30 09 09 09 09 09 3B 4E 75 6D 62 65 72    db 0.....;Number
005B70:  20 6F 66 20 63 68 61 72 61 63 74 65 72 73 20 73     of characters s
005B80:  65 6E 74 0D 0A 2E 67 72 61 70 6F 73 09 64 77 20    ent...grapos.dw 
005B90:  67 72 61 62 75 66 09 09 09 09 3B 50 6F 73 69 74    grabuf....;Posit
005BA0:  69 6F 6E 20 69 6E 20 62 75 66 66 65 72 0D 0A 2E    ion in buffer...
005BB0:  67 72 61 62 75 66 09 64 73 20 31 32 38 09 09 09    grabuf.ds 128...
005BC0:  09 09 3B 42 75 66 66 65 72 0D 0A 0D 0A 09 3B 2A    ..;Buffer.....;*
005BD0:  2A 2A 20 56 41 52 53 09 43 68 61 72 61 63 74 65    ** VARS.Characte
005BE0:  72 2F 73 70 61 63 69 6E 67 20 62 75 66 66 65 72    r/spacing buffer
005BF0:  73 0D 0A 0D 0A 2E 63 68 61 72 73 09 64 73 20 32    s.....chars.ds 2
005C00:  20 6A 70 20 20 7A 2C 61 73 63 69 69 0D 0A 09 63     jp  z,ascii...c
005C10:  70 20 34 3A 20 6A 70 20 20 7A 2C 70 72 69 6E 74    p 4: jp  z,print
005C20:  0D 0A 09 63 70 20 36 3A 20 72 65 74 20 7A 0D 0A    ...cp 6: ret z..
005C30:  09 6A 70 20 66 69 6C 65 0D 0A 0D 0A 0D 0A 09 3B    .jp file.......;
005C40:  2B 2B 2B 20 52 4F 55 54 09 4F 70 65 6E 20 64 61    +++ ROUT.Open da
005C50:  74 61 62 61 73 65 0D 0A 0D 0A 2E 6F 70 65 6E 09    tabase.....open.
005C60:  6C 64 20 68 2C 33 31 3A 20 6C 64 20 6C 2C 38 30    ld h,31: ld l,80
005C70:  0D 0A 09 6C 64 20 64 2C 31 38 3A 20 6C 64 20 65    ...ld d,18: ld e
005C80:  2C 34 34 0D 0A 09 63 61 6C 6C 20 26 39 32 33 46    ,44...call &923F
005C90:  0D 0A 09 63 61 6C 6C 20 26 39 32 38 31 0D 0A 09    ...call &9281...
005CA0:  63 61 6C 6C 20 26 39 32 38 41 0D 0A 09 6C 64 20    call &928A...ld 
005CB0:  64 65 2C 37 39 3A 20 63 61 6C 6C 20 26 39 32 37    de,79: call &927
005CC0:  38 0D 0A 0D 0A 09 6C 64 20 68 6C 2C 6F 70 65 6E    8.....ld hl,open
005CD0:  74 78 3A 20 63 61 6C 6C 20 26 39 32 30 33 0D 0A    tx: call &9203..
005CE0:  09 6C 64 20 64 2C 33 33 3A 20 6C 64 20 65 2C 31    .ld d,33: ld e,1
005CF0:  30 38 3A 20 6F 72 20 61 0D 0A 09 6C 64 20 63 2C    08: or a...ld c,
005D00:  31 33 3A 20 6C 64 20 68 6C 2C 66 6E 61 6D 65 3A    13: ld hl,fname:
005D10:  20 63 61 6C 6C 20 26 39 32 37 32 0D 0A 09 6A 70     call &9272...jp
005D20:  20 63 2C 6F 70 65 6E 65 72 0D 0A 0D 0A 09 6C 64     c,opener.....ld
005D30:  20 62 2C 63 3A 20 6C 64 20 68 6C 2C 66 6E 61 6D     b,c: ld hl,fnam
005D40:  65 09 09 09 3B 4F 70 65 6E 20 66 69 6C 65 0D 0A    e...;Open file..
005D50:  09 6C 64 20 64 65 2C 26 43 30 30 30 3A 20 63 61    .ld de,&C000: ca
005D60:  6C 6C 20 26 42 43 37 37 3A 20 6A 70 20 6E 63 2C    ll &BC77: jp nc,
005D70:  6F 70 65 6E 65 72 09 3B 20 7C 0D 0A 09 6C 64 20    opener.; |...ld 
005D80:  68 6C 2C 66 6E 61 6D 65 3A 20 63 61 6C 6C 20 26    hl,fname: call &
005D90:  42 43 38 33 3A 20 6A 70 20 6E 63 2C 6F 70 65 6E    BC83: jp nc,open
005DA0:  65 72 09 3B 4C 6F 61 64 20 66 69 6C 65 0D 0A 09    er.;Load file...
005DB0:  63 61 6C 6C 20 26 42 43 37 41 0D 0A 0D 0A 09 6C    call &BC7A.....l
005DC0:  64 20 61 2C 28 6C 73 74 72 65 63 29 3A 20 63 61    d a,(lstrec): ca
005DD0:  6C 6C 20 73 74 61 74 73 32 0D 0A 09 61 64 64 20    ll stats2...add 
005DE0:  68 6C 2C 64 65 3A 20 6C 64 20 28 6C 61 73 74 61    hl,de: ld (lasta
005DF0:  64 29 2C 68 6C 0D 0A 0D 0A 09 3B 09 09 45 72 72    d),hl.....;..Err
005E00:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
005E10:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
005E20:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
005E30:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
005E40:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
005E50:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
005E60:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
005E70:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
005E80:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
005E90:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
005EA0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
005EB0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
005EC0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
005ED0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
005EE0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
005EF0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
005F00:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
005F10:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
005F20:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
005F30:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
005F40:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
005F50:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
005F60:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
005F70:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
005F80:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
005F90:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
005FA0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
005FB0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
005FC0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
005FD0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
005FE0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
005FF0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
006000:  54 72 61 63 6B 2D 49 6E 66 6F 0D 0A 00 00 00 00    Track-Info......
006010:  05 00 01 00 02 09 4E E5 05 00 C3 02 00 00 00 02    ......N.........
006020:  05 00 C8 02 00 00 00 02 05 00 C4 02 00 00 00 02    ................
006030:  05 00 C9 02 00 00 00 02 05 00 C5 02 00 00 00 02    ................
006040:  05 00 C1 02 00 00 00 02 05 00 C6 02 00 00 00 02    ................
006050:  05 00 C2 02 00 00 00 02 05 00 C7 02 00 00 00 02    ................
006060:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
006070:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
006080:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
006090:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
0060A0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
0060B0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
0060C0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
0060D0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
0060E0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
0060F0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
006100:  70 20 61 66 09 09 3B 50 72 69 6E 74 20 74 6F 20    p af..;Print to 
006110:  64 69 73 63 0D 0A 09 6C 64 20 68 6C 2C 6C 73 74    disc...ld hl,lst
006120:  72 65 63 3A 20 63 70 20 28 68 6C 29 3A 20 6A 70    rec: cp (hl): jp
006130:  20 7A 2C 6B 65 79 73 09 3B 20 7C 0D 0A 09 69 6E     z,keys.; |...in
006140:  63 20 61 3A 20 6A 72 20 70 72 6E 5F 6C 70 09 09    c a: jr prn_lp..
006150:  09 3B 20 7C 20 61 6E 64 20 6C 6F 6F 70 0D 0A 0D    .; | and loop...
006160:  0A 0D 0A 0D 0A 09 3B 2A 2A 2A 20 53 55 42 52 09    ......;*** SUBR.
006170:  4F 75 74 70 75 74 20 64 69 73 63 20 63 61 74 61    Output disc cata
006180:  6C 6F 67 75 65 0D 0A 09 3B 09 09 4F 6E 20 65 6E    logue...;..On en
006190:  74 72 79 2C 20 41 20 63 6F 6E 74 61 69 6E 73 20    try, A contains 
0061A0:  64 69 73 63 20 6E 75 6D 62 65 72 0D 0A 09 3B 09    disc number...;.
0061B0:  09 52 6F 75 74 69 6E 65 20 61 74 20 70 63 68 61    .Routine at pcha
0061C0:  72 20 73 68 6F 75 6C 64 20 6F 75 74 70 75 74 20    r should output 
0061D0:  61 20 63 68 61 72 61 63 74 65 72 0D 0A 0D 0A 2E    a character.....
0061E0:  6F 75 74 70 75 74 09 63 61 6C 6C 20 72 65 63 61    output.call reca
0061F0:  64 64 0D 0A 09 70 75 73 68 20 68 6C 3A 20 63 61    dd...push hl: ca
006200:  6C 6C 20 73 74 72 69 6E 67 3A 20 70 6F 70 20 68    ll string: pop h
006210:  6C 09 09 3B 50 72 69 6E 74 20 74 69 74 6C 65 0D    l..;Print title.
006220:  0A 09 63 61 6C 6C 20 63 72 6C 66 3A 20 6C 64 20    ..call crlf: ld 
006230:  64 65 2C 33 32 3A 20 61 64 64 20 68 6C 2C 64 65    de,32: add hl,de
006240:  09 09 3B 20 7C 0D 0A 09 70 75 73 68 20 68 6C 3A    ..; |...push hl:
006250:  20 6C 64 20 62 2C 28 68 6C 29 09 09 09 3B 50 72     ld b,(hl)...;Pr
006260:  69 6E 74 20 6E 75 6D 62 65 72 20 6F 66 20 66 69    int number of fi
006270:  6C 65 73 0D 0A 09 20 6C 64 20 6C 2C 28 68 6C 29    les... ld l,(hl)
006280:  3A 20 6C 64 20 68 2C 30 3A 20 63 61 6C 6C 20 70    : ld h,0: call p
006290:  72 5F 68 6C 09 09 3B 20 7C 0D 0A 09 20 6C 64 20    r_hl..; |... ld 
0062A0:  68 6C 2C 66 69 6C 65 73 3A 20 63 61 6C 6C 20 73    hl,files: call s
0062B0:  74 72 69 6E 67 09 09 3B 20 7C 0D 0A 09 20 6C 64    tring..; |... ld
0062C0:  20 61 2C 22 2C 22 3A 20 63 61 6C 6C 20 70 63 68     a,",": call pch
0062D0:  61 72 09 09 09 3B 20 7C 0D 0A 09 20 6C 64 20 61    ar...; |... ld a
0062E0:  2C 22 20 22 3A 20 63 61 6C 6C 20 70 63 68 61 72    ," ": call pchar
0062F0:  09 09 09 3B 20 7C 0D 0A 09 70 6F 70 20 68 6C 3A    ...; |...pop hl:
006300:  4D 45 4E 55 09 44 69 73 63 20 6D 65 6E 75 0D 0A    MENU.Disc menu..
006310:  0D 0A 2E 64 69 73 63 09 6C 64 20 68 6C 2C 6D 64    ...disc.ld hl,md
006320:  69 73 63 3A 20 6C 64 20 64 65 2C 69 64 69 73 63    isc: ld de,idisc
006330:  0D 0A 09 63 61 6C 6C 20 26 39 32 37 45 3A 20 6A    ...call &927E: j
006340:  70 20 63 2C 73 65 6C 65 63 74 3A 20 63 70 20 26    p c,select: cp &
006350:  46 46 3A 20 6A 70 20 7A 2C 6D 6F 75 73 65 0D 0A    FF: jp z,mouse..
006360:  0D 0A 09 63 70 20 31 3A 20 6A 70 20 7A 2C 6C 6F    ...cp 1: jp z,lo
006370:  67 69 6E 0D 0A 09 63 70 20 32 3A 20 6A 70 20 7A    gin...cp 2: jp z
006380:  2C 75 70 64 61 74 65 0D 0A 09 63 70 20 34 3A 20    ,update...cp 4: 
006390:  6A 70 20 7A 2C 70 72 72 65 63 0D 0A 09 63 70 20    jp z,prrec...cp 
0063A0:  35 3A 20 6A 70 20 7A 2C 67 6F 74 6F 0D 0A 09 63    5: jp z,goto...c
0063B0:  70 20 37 3A 20 6A 70 20 7A 2C 64 72 69 76 65 61    p 7: jp z,drivea
0063C0:  0D 0A 09 63 70 20 38 3A 20 6A 70 20 7A 2C 64 72    ...cp 8: jp z,dr
0063D0:  69 76 65 62 0D 0A 09 6A 70 20 64 69 73 63 0D 0A    iveb...jp disc..
0063E0:  0D 0A 09 3B 2B 2B 2B 20 52 4F 55 54 09 4C 6F 67    ...;+++ ROUT.Log
0063F0:  20 69 6E 20 6E 65 77 20 64 69 73 63 0D 0A 0D 0A     in new disc....
006400:  2E 6C 6F 67 69 6E 09 63 61 6C 6C 20 6D 65 6D 63    .login.call memc
006410:  68 6B 20 20 20 3A 20 6A 70 20 6E 63 2C 6D 6F 75    hk   : jp nc,mou
006420:  73 65 0D 0A 09 6C 64 20 68 6C 2C 28 6C 61 73 74    se...ld hl,(last
006430:  61 64 29 3A 20 6C 64 20 28 68 6C 29 2C 30 0D 0A    ad): ld (hl),0..
006440:  09 6C 64 20 64 2C 68 3A 20 6C 64 20 65 2C 6C 3A    .ld d,h: ld e,l:
006450:  20 69 6E 63 20 64 65 3A 20 6C 64 20 62 63 2C 34     inc de: ld bc,4
006460:  38 3A 20 6C 64 69 72 0D 0A 09 6C 64 20 68 6C 2C    8: ldir...ld hl,
006470:  28 6C 61 73 74 61 64 29 3A 20 63 61 6C 6C 20 6C    (lastad): call l
006480:  6F 67 73 75 62 3A 20 6C 64 20 28 6C 61 73 74 61    ogsub: ld (lasta
006490:  64 29 2C 68 6C 0D 0A 0D 0A 09 6C 64 20 61 2C 28    d),hl.....ld a,(
0064A0:  6C 73 74 72 65 63 29 3A 20 69 6E 63 20 61 0D 0A    lstrec): inc a..
0064B0:  09 6C 64 20 28 6C 73 74 72 65 63 29 2C 61 3A 20    .ld (lstrec),a: 
0064C0:  6C 64 20 28 63 75 72 72 65 63 29 2C 61 0D 0A 09    ld (currec),a...
0064D0:  63 61 6C 6C 20 72 65 63 61 64 64 3A 20 63 61 6C    call recadd: cal
0064E0:  6C 20 63 61 72 64 0D 0A 09 6A 70 20 6D 6F 75 73    l card...jp mous
0064F0:  65 0D 0A 0D 0A 0D 0A 09 3B 2B 2B 2B 20 52 4F 55    e.......;+++ ROU
006500:  20 69 6E 63 20 68 6C 09 09 09 09 3B 20 7C 0D 0A     inc hl....; |..
006510:  09 70 75 73 68 20 68 6C 09 09 09 09 09 3B 50 72    .push hl.....;Pr
006520:  69 6E 74 20 6B 20 66 72 65 65 0D 0A 09 20 6C 64    int k free... ld
006530:  20 65 2C 28 68 6C 29 3A 20 69 6E 63 20 68 6C 09     e,(hl): inc hl.
006540:  09 09 3B 20 7C 0D 0A 09 20 6C 64 20 64 2C 28 68    ..; |... ld d,(h
006550:  6C 29 3A 20 65 78 20 64 65 2C 68 6C 3A 20 63 61    l): ex de,hl: ca
006560:  6C 6C 20 70 72 5F 68 6C 09 3B 20 7C 0D 0A 09 20    ll pr_hl.; |... 
006570:  6C 64 20 68 6C 2C 66 72 65 65 3A 20 63 61 6C 6C    ld hl,free: call
006580:  20 73 74 72 69 6E 67 09 09 3B 20 7C 0D 0A 09 70     string..; |...p
006590:  6F 70 20 68 6C 3A 20 69 6E 63 20 68 6C 3A 20 69    op hl: inc hl: i
0065A0:  6E 63 20 68 6C 3A 20 63 61 6C 6C 20 63 72 6C 66    nc hl: call crlf
0065B0:  09 3B 20 7C 0D 0A 09 70 75 73 68 20 68 6C 09 09    .; |...push hl..
0065C0:  09 09 09 3B 50 72 69 6E 74 20 66 6F 72 6D 61 74    ...;Print format
0065D0:  0D 0A 09 20 6C 64 20 61 2C 28 68 6C 29 3A 20 63    ... ld a,(hl): c
0065E0:  61 6C 6C 20 70 66 6F 72 6D 3A 20 63 61 6C 6C 20    all pform: call 
0065F0:  73 74 72 69 6E 67 09 3B 20 7C 0D 0A 09 20 6C 64    string.; |... ld
006600:  20 68 6C 2C 66 5F 66 6F 72 6D 09 20 20 20 20 20     hl,f_form.     
006610:  20 3A 20 63 61 6C 6C 20 73 74 72 69 6E 67 09 3B     : call string.;
006620:  20 7C 0D 0A 09 70 6F 70 20 68 6C 3A 20 69 6E 63     |...pop hl: inc
006630:  20 68 6C 09 09 09 09 3B 20 7C 0D 0A 09 70 75 73     hl....; |...pus
006640:  68 20 68 6C 09 09 09 09 09 3B 50 72 69 6E 74 20    h hl.....;Print 
006650:  61 72 63 68 69 76 65 0D 0A 09 20 6C 64 20 61 2C    archive... ld a,
006660:  28 68 6C 29 3A 20 6F 72 20 61 3A 20 6A 72 20 7A    (hl): or a: jr z
006670:  2C 70 6E 61 72 63 09 09 3B 20 7C 0D 0A 09 20 70    ,pnarc..; |... p
006680:  75 73 68 20 61 66 3A 20 6C 64 20 68 6C 2C 61 64    ush af: ld hl,ad
006690:  69 73 63 3A 20 63 61 6C 6C 20 73 74 72 69 6E 67    isc: call string
0066A0:  09 3B 20 7C 20 61 72 63 68 69 76 65 2E 2E 2E 0D    .; | archive....
0066B0:  0A 09 20 70 6F 70 20 20 61 66 3A 20 6C 64 20 6C    .. pop  af: ld l
0066C0:  2C 61 3A 20 6C 64 20 68 2C 30 3A 20 63 61 6C 6C    ,a: ld h,0: call
0066D0:  20 70 72 5F 68 6C 09 3B 20 7C 20 20 7C 0D 0A 09     pr_hl.; |  |...
0066E0:  20 6A 72 20 70 6E 61 72 63 64 09 09 09 09 3B 20     jr pnarcd....; 
0066F0:  7C 20 20 7C 0D 0A 2E 70 6E 61 72 63 09 20 6C 64    |  |...pnarc. ld
006700:  54 09 55 70 64 61 74 65 20 64 69 73 63 0D 0A 0D    T.Update disc...
006710:  0A 2E 75 70 64 61 74 65 09 63 61 6C 6C 20 6D 65    ..update.call me
006720:  6D 63 68 6B 3A 20 6A 70 20 6E 63 2C 6D 6F 75 73    mchk: jp nc,mous
006730:  65 0D 0A 0D 0A 09 63 61 6C 6C 20 73 74 61 74 73    e.....call stats
006740:  3A 20 61 64 64 20 68 6C 2C 64 65 3A 20 65 78 20    : add hl,de: ex 
006750:  64 65 2C 68 6C 09 09 3B 46 69 6E 64 20 6F 75 74    de,hl..;Find out
006760:  20 6C 65 6E 67 74 68 20 74 6F 20 63 6F 70 79 0D     length to copy.
006770:  0A 09 6C 64 20 68 6C 2C 28 6C 61 73 74 61 64 29    ..ld hl,(lastad)
006780:  3A 20 6F 72 20 61 3A 20 73 62 63 20 68 6C 2C 64    : or a: sbc hl,d
006790:  65 09 09 3B 20 7C 0D 0A 09 6C 64 20 28 6C 65 6E    e..; |...ld (len
0067A0:  67 74 68 29 2C 68 6C 3A 20 6C 64 20 61 2C 68 3A    gth),hl: ld a,h:
0067B0:  20 6F 72 20 6C 09 09 3B 20 7C 20 6C 65 6E 67 74     or l..; | lengt
0067C0:  68 3D 62 79 74 65 73 20 61 66 74 65 72 20 72 65    h=bytes after re
0067D0:  63 6F 72 64 0D 0A 09 6A 72 20 7A 2C 64 6F 6C 6F    cord...jr z,dolo
0067E0:  67 09 09 09 09 3B 20 7C 0D 0A 0D 0A 09 63 61 6C    g....; |.....cal
0067F0:  6C 20 73 74 61 74 73 3A 20 6C 64 20 64 65 2C 26    l stats: ld de,&
006800:  43 32 35 09 09 09 3B 46 69 6E 64 20 6F 75 74 20    C25...;Find out 
006810:  64 65 73 74 69 6E 61 74 69 6F 6E 0D 0A 09 61 64    destination...ad
006820:  64 20 68 6C 2C 64 65 3A 20 6C 64 20 28 64 65 73    d hl,de: ld (des
006830:  74 29 2C 68 6C 09 09 09 3B 20 7C 20 64 65 73 74    t),hl...; | dest
006840:  3D 6C 6F 63 61 74 69 6F 6E 20 66 6F 72 20 6E 65    =location for ne
006850:  78 74 2C 0D 0A 09 09 09 09 09 09 3B 20 7C 20 20    xt,........; |  
006860:  20 20 20 20 6C 65 61 76 69 6E 67 20 6D 61 78 69        leaving maxi
006870:  6D 75 6D 20 73 70 61 63 65 0D 0A 0D 0A 09 63 61    mum space.....ca
006880:  6C 6C 20 73 74 61 74 73 3A 20 61 64 64 20 68 6C    ll stats: add hl
006890:  2C 64 65 09 09 09 3B 46 69 6E 64 20 6F 75 74 20    ,de...;Find out 
0068A0:  73 6F 75 72 63 65 0D 0A 09 6C 64 20 64 65 2C 28    source...ld de,(
0068B0:  64 65 73 74 29 3A 20 6C 64 20 62 63 2C 28 6C 65    dest): ld bc,(le
0068C0:  6E 67 74 68 29 3A 20 63 61 6C 6C 20 6C 64 64 73    ngth): call ldds
0068D0:  09 3B 2E 2E 2E 61 6E 64 20 63 6F 70 79 20 69 74    .;...and copy it
0068E0:  0D 0A 0D 0A 2E 64 6F 6C 6F 67 09 63 61 6C 6C 20    .....dolog.call 
0068F0:  73 74 61 74 73 3A 20 63 61 6C 6C 20 6C 6F 67 73    stats: call logs
006900:  20 68 6C 2C 66 6E 74 61 72 63 3A 20 63 61 6C 6C     hl,fntarc: call
006910:  20 73 74 72 69 6E 67 09 09 3B 20 7C 20 6E 6F 74     string..; | not
006920:  20 61 72 63 68 69 76 65 64 0D 0A 2E 70 6E 61 72     archived...pnar
006930:  63 64 09 70 6F 70 20 68 6C 3A 20 63 61 6C 6C 20    cd.pop hl: call 
006940:  63 72 6C 66 3A 20 63 61 6C 6C 20 63 72 6C 66 0D    crlf: call crlf.
006950:  0A 09 6C 64 20 64 65 2C 31 33 3A 20 61 64 64 20    ..ld de,13: add 
006960:  68 6C 2C 64 65 0D 0A 0D 0A 09 6C 64 20 63 2C 30    hl,de.....ld c,0
006970:  3A 20 6C 64 20 61 2C 62 3A 20 6F 72 20 61 3A 20    : ld a,b: or a: 
006980:  6A 72 20 7A 2C 65 6F 5F 6F 75 74 09 3B 41 6E 79    jr z,eo_out.;Any
006990:  20 66 69 6C 65 73 3F 0D 0A 2E 70 6C 5F 6F 6C 70     files?...pl_olp
0069A0:  09 6C 64 20 63 2C 35 09 09 09 09 09 3B 50 72 69    .ld c,5.....;Pri
0069B0:  6E 74 20 6C 69 6E 65 20 28 6F 75 74 65 72 20 6C    nt line (outer l
0069C0:  6F 6F 70 29 0D 0A 2E 70 6C 5F 69 6C 70 09 63 61    oop)...pl_ilp.ca
0069D0:  6C 6C 20 6F 70 66 6E 09 09 09 09 3B 20 7C 20 70    ll opfn....; | p
0069E0:  72 69 6E 74 20 66 69 6C 65 6E 61 6D 65 20 28 69    rint filename (i
0069F0:  6E 6E 65 72 20 6C 6F 6F 70 29 0D 0A 09 6C 64 20    nner loop)...ld 
006A00:  61 2C 22 20 22 20 3A 20 63 61 6C 6C 20 70 63 68    a," " : call pch
006A10:  61 72 09 09 09 3B 20 7C 20 20 7C 0D 0A 09 6C 64    ar...; |  |...ld
006A20:  20 61 2C 22 20 22 20 3A 20 63 61 6C 6C 20 70 63     a," " : call pc
006A30:  68 61 72 09 09 09 3B 20 7C 20 20 7C 0D 0A 09 64    har...; |  |...d
006A40:  65 63 20 62 09 20 3A 20 6A 72 20 7A 20 2C 65 6F    ec b. : jr z ,eo
006A50:  5F 6F 75 74 09 09 09 3B 20 7C 20 20 7C 20 61 6E    _out...; |  | an
006A60:  79 20 66 69 6C 65 73 20 6C 65 66 74 3F 0D 0A 09    y files left?...
006A70:  64 65 63 20 63 09 20 3A 20 6A 72 20 6E 7A 2C 70    dec c. : jr nz,p
006A80:  6C 5F 69 6C 70 09 09 09 3B 20 7C 20 20 7C 0D 0A    l_ilp...; |  |..
006A90:  09 63 61 6C 6C 20 63 72 6C 66 3A 20 6A 72 20 20    .call crlf: jr  
006AA0:  20 20 70 6C 5F 6F 6C 70 09 09 09 3B 20 7C 0D 0A      pl_olp...; |..
006AB0:  0D 0A 2E 65 6F 5F 6F 75 74 09 6C 64 20 61 2C 63    ...eo_out.ld a,c
006AC0:  3A 20 6F 72 20 61 3A 20 63 61 6C 6C 20 6E 7A 2C    : or a: call nz,
006AD0:  63 72 6C 66 0D 0A 09 63 61 6C 6C 20 63 72 6C 66    crlf...call crlf
006AE0:  3A 20 72 65 74 0D 0A 0D 0A 2E 70 63 68 61 72 09    : ret.....pchar.
006AF0:  64 73 20 33 0D 0A 0D 0A 2E 70 64 69 73 63 09 70    ds 3.....pdisc.p
006B00:  30 09 09 09 3B 20 7C 20 6F 72 69 67 69 6E 20 61    0...; | origin a
006B10:  6E 64 20 65 78 65 63 75 74 69 6F 6E 20 61 64 64    nd execution add
006B20:  72 65 73 73 0D 0A 09 6C 64 20 61 2C 32 3A 20 63    ress...ld a,2: c
006B30:  61 6C 6C 20 26 42 43 39 38 3A 20 6A 70 20 6E 63    all &BC98: jp nc
006B40:  2C 73 61 76 65 65 72 09 3B 20 7C 20 66 69 6C 65    ,saveer.; | file
006B50:  74 79 70 65 0D 0A 09 63 61 6C 6C 20 26 42 43 38    type...call &BC8
006B60:  46 09 09 09 09 3B 43 6C 6F 73 65 0D 0A 0D 0A 2E    F....;Close.....
006B70:  73 61 76 65 65 72 09 63 61 6C 6C 20 26 42 43 39    saveer.call &BC9
006B80:  32 3A 20 63 61 6C 6C 20 26 39 32 38 44 0D 0A 09    2: call &928D...
006B90:  63 61 6C 6C 20 73 74 61 74 73 3A 20 63 61 6C 6C    call stats: call
006BA0:  20 63 61 72 64 20 3A 20 6A 70 20 6B 65 79 73 0D     card : jp keys.
006BB0:  0A 0D 0A 0D 0A 09 3B 2B 2B 2B 20 52 4F 55 54 09    ......;+++ ROUT.
006BC0:  53 61 76 65 20 61 73 20 41 53 43 49 49 0D 0A 0D    Save as ASCII...
006BD0:  0A 2E 61 73 63 69 69 09 6C 64 20 68 2C 33 31 3A    ..ascii.ld h,31:
006BE0:  20 6C 64 20 6C 2C 38 30 0D 0A 09 6C 64 20 64 2C     ld l,80...ld d,
006BF0:  31 38 3A 20 6C 64 20 65 2C 34 34 0D 0A 09 63 61    18: ld e,44...ca
006C00:  6C 6C 20 26 39 32 33 46 0D 0A 09 63 61 6C 6C 20    ll &923F...call 
006C10:  26 39 32 38 31 0D 0A 09 63 61 6C 6C 20 26 39 32    &9281...call &92
006C20:  38 41 0D 0A 09 6C 64 20 64 65 2C 37 39 3A 20 63    8A...ld de,79: c
006C30:  61 6C 6C 20 26 39 32 37 38 0D 0A 0D 0A 09 6C 64    all &9278.....ld
006C40:  20 68 6C 2C 73 61 76 65 74 78 3A 20 63 61 6C 6C     hl,savetx: call
006C50:  20 26 39 32 30 33 0D 0A 09 6C 64 20 64 2C 33 33     &9203...ld d,33
006C60:  3A 20 6C 64 20 65 2C 31 30 38 3A 20 6F 72 20 61    : ld e,108: or a
006C70:  0D 0A 09 6C 64 20 63 2C 31 33 3A 20 6C 64 20 68    ...ld c,13: ld h
006C80:  6C 2C 66 6E 61 6D 65 3A 20 63 61 6C 6C 20 26 39    l,fname: call &9
006C90:  32 37 32 0D 0A 09 6A 70 20 63 2C 61 73 63 65 72    272...jp c,ascer
006CA0:  72 0D 0A 0D 0A 09 6C 64 20 62 2C 63 3A 20 6C 64    r.....ld b,c: ld
006CB0:  20 68 6C 2C 66 6E 61 6D 65 09 09 09 3B 4F 70 65     hl,fname...;Ope
006CC0:  6E 20 66 69 6C 65 0D 0A 09 6C 64 20 64 65 2C 26    n file...ld de,&
006CD0:  31 30 30 30 3A 20 63 61 6C 6C 20 26 42 43 38 43    1000: call &BC8C
006CE0:  3A 20 6A 70 20 6E 63 2C 61 73 63 65 72 72 09 3B    : jp nc,ascerr.;
006CF0:  20 7C 0D 0A 0D 0A 09 6C 64 20 61 2C 26 43 33 20     |.....ld a,&C3 
006D00:  75 73 68 20 69 78 3A 20 63 61 6C 6C 20 26 42 43    ush ix: call &BC
006D10:  39 35 3A 20 70 6F 70 20 69 78 3A 20 72 65 74 20    95: pop ix: ret 
006D20:  63 09 3B 4F 75 74 70 75 74 20 74 6F 20 64 69 73    c.;Output to dis
006D30:  63 0D 0A 09 6C 64 20 61 2C 26 43 39 3A 20 6C 64    c...ld a,&C9: ld
006D40:  20 28 70 63 68 61 72 29 2C 61 09 09 09 3B 20 7C     (pchar),a...; |
006D50:  20 69 66 20 64 69 73 63 20 65 72 72 6F 72 2C 20     if disc error, 
006D60:  63 6C 6F 73 65 0D 0A 09 70 75 73 68 20 61 66 3A    close...push af:
006D70:  20 70 75 73 68 20 62 63 3A 20 70 75 73 68 20 64     push bc: push d
006D80:  65 3A 20 70 75 73 68 20 68 6C 09 3B 20 7C 20 20    e: push hl.; |  
006D90:  7C 0D 0A 09 20 63 61 6C 6C 20 26 42 43 39 32 09    |... call &BC92.
006DA0:  09 09 09 3B 20 7C 20 20 7C 0D 0A 09 70 6F 70 20    ...; |  |...pop 
006DB0:  68 6C 3A 20 70 6F 70 20 64 65 3A 20 70 6F 70 20    hl: pop de: pop 
006DC0:  62 63 3A 20 70 6F 70 20 61 66 3A 20 72 65 74 09    bc: pop af: ret.
006DD0:  3B 20 7C 20 20 7C 0D 0A 2E 70 72 6E 09 70 75 73    ; |  |...prn.pus
006DE0:  68 20 61 66 09 09 09 09 09 3B 4F 75 74 70 75 74    h af.....;Output
006DF0:  20 74 6F 20 70 72 69 6E 74 65 72 0D 0A 09 20 63     to printer... c
006E00:  61 6C 6C 20 26 42 44 32 42 3A 20 6A 72 20 63 2C    all &BD2B: jr c,
006E10:  70 72 6E 5F 6F 6B 09 09 3B 20 7C 0D 0A 09 70 6F    prn_ok..; |...po
006E20:  70 20 61 66 3A 20 6A 72 20 70 72 6E 09 09 09 09    p af: jr prn....
006E30:  3B 20 7C 0D 0A 2E 70 72 6E 5F 6F 6B 09 70 6F 70    ; |...prn_ok.pop
006E40:  20 61 66 3A 20 72 65 74 09 09 09 09 3B 20 7C 0D     af: ret....; |.
006E50:  0A 0D 0A 0D 0A 09 3B 2D 2D 2D 20 73 75 62 72 09    ......;--- subr.
006E60:  4F 75 74 70 75 74 20 73 74 72 69 6E 67 0D 0A 0D    Output string...
006E70:  0A 2E 73 74 72 69 6E 67 09 6C 64 20 61 2C 28 68    ..string.ld a,(h
006E80:  6C 29 3A 20 6F 72 20 61 3A 20 72 65 74 20 7A 0D    l): or a: ret z.
006E90:  0A 09 63 61 6C 6C 20 70 63 68 61 72 3A 20 69 6E    ..call pchar: in
006EA0:  63 20 68 6C 3A 20 6A 72 20 73 74 72 69 6E 67 0D    c hl: jr string.
006EB0:  0A 0D 0A 09 3B 2D 2D 2D 20 73 75 62 72 09 4F 75    ....;--- subr.Ou
006EC0:  74 70 75 74 20 31 32 2D 63 68 61 72 61 63 74 65    tput 12-characte
006ED0:  72 20 66 69 6C 65 6E 61 6D 65 0D 0A 0D 0A 2E 6F    r filename.....o
006EE0:  70 66 6E 09 70 75 73 68 20 62 63 3A 20 6C 64 20    pfn.push bc: ld 
006EF0:  62 2C 31 32 0D 0A 2E 6F 70 66 6E 6C 70 09 20 6C    b,12...opfnlp. l
006F00:  20 20 3A 20 6C 64 20 28 70 63 68 61 72 2B 30 29      : ld (pchar+0)
006F10:  2C 61 09 09 3B 53 65 74 20 75 70 20 70 72 69 6E    ,a..;Set up prin
006F20:  74 69 6E 67 20 74 6F 20 64 69 73 63 0D 0A 09 6C    ting to disc...l
006F30:  64 20 68 6C 2C 70 64 69 73 63 3A 20 6C 64 20 28    d hl,pdisc: ld (
006F40:  70 63 68 61 72 2B 31 29 2C 68 6C 09 09 3B 20 7C    pchar+1),hl..; |
006F50:  0D 0A 09 78 6F 72 20 61 09 09 09 09 09 3B 52 65    ...xor a.....;Re
006F60:  63 6F 72 64 20 30 0D 0A 2E 61 73 63 5F 6C 70 09    cord 0...asc_lp.
006F70:  70 75 73 68 20 61 66 3A 20 63 61 6C 6C 20 6F 75    push af: call ou
006F80:  74 70 75 74 3A 20 70 6F 70 20 61 66 09 09 3B 50    tput: pop af..;P
006F90:  72 69 6E 74 20 74 6F 20 64 69 73 63 0D 0A 09 6C    rint to disc...l
006FA0:  64 20 68 6C 2C 6C 73 74 72 65 63 3A 20 63 70 20    d hl,lstrec: cp 
006FB0:  28 68 6C 29 3A 20 6A 72 20 7A 2C 61 73 63 63 6C    (hl): jr z,asccl
006FC0:  73 09 3B 20 7C 0D 0A 09 69 6E 63 20 61 3A 20 6A    s.; |...inc a: j
006FD0:  72 20 61 73 63 5F 6C 70 09 09 09 3B 20 7C 20 61    r asc_lp...; | a
006FE0:  6E 64 20 6C 6F 6F 70 0D 0A 0D 0A 2E 61 73 63 63    nd loop.....ascc
006FF0:  6C 73 09 63 61 6C 6C 20 26 42 43 38 46 09 09 09    ls.call &BC8F...
007000:  09 3B 43 6C 6F 73 65 0D 0A 0D 0A 2E 61 73 63 65    .;Close.....asce
007010:  72 72 09 63 61 6C 6C 20 26 42 43 39 32 3A 20 63    rr.call &BC92: c
007020:  61 6C 6C 20 26 39 32 38 44 0D 0A 09 63 61 6C 6C    all &928D...call
007030:  20 73 74 61 74 73 3A 20 63 61 6C 6C 20 63 61 72     stats: call car
007040:  64 20 3A 20 6A 70 20 6B 65 79 73 0D 0A 0D 0A 0D    d : jp keys.....
007050:  0A 09 3B 2B 2B 2B 20 52 4F 55 54 09 50 72 69 6E    ..;+++ ROUT.Prin
007060:  74 20 64 61 74 61 62 61 73 65 0D 0A 0D 0A 2E 70    t database.....p
007070:  72 69 6E 74 09 63 61 6C 6C 20 26 39 32 42 44 3A    rint.call &92BD:
007080:  20 6A 70 20 6E 63 2C 6B 65 79 73 0D 0A 09 6C 64     jp nc,keys...ld
007090:  20 61 20 2C 26 43 33 20 3A 20 6C 64 20 28 70 63     a ,&C3 : ld (pc
0070A0:  68 61 72 2B 30 29 2C 61 0D 0A 09 6C 64 20 68 6C    har+0),a...ld hl
0070B0:  2C 70 72 6E 20 3A 20 6C 64 20 28 70 63 68 61 72    ,prn : ld (pchar
0070C0:  2B 31 29 2C 68 6C 0D 0A 0D 0A 09 78 6F 72 20 61    +1),hl.....xor a
0070D0:  09 09 09 09 09 3B 52 65 63 6F 72 64 20 30 0D 0A    .....;Record 0..
0070E0:  2E 70 72 6E 5F 6C 70 09 70 75 73 68 20 61 66 3A    .prn_lp.push af:
0070F0:  20 63 61 6C 6C 20 6F 75 74 70 75 74 3A 20 70 6F     call output: po
007100:  64 20 61 2C 28 68 6C 29 3A 20 69 6E 63 20 68 6C    d a,(hl): inc hl
007110:  3A 20 61 6E 64 20 31 32 37 0D 0A 09 20 63 61 6C    : and 127... cal
007120:  6C 20 70 63 68 61 72 3A 20 64 6A 6E 7A 20 6F 70    l pchar: djnz op
007130:  66 6E 6C 70 0D 0A 09 70 6F 70 20 62 63 3A 20 72    fnlp...pop bc: r
007140:  65 74 0D 0A 0D 0A 09 3B 2D 2D 2D 20 73 75 62 72    et.....;--- subr
007150:  09 43 52 2F 4C 46 0D 0A 0D 0A 2E 63 72 6C 66 09    .CR/LF.....crlf.
007160:  6C 64 20 61 2C 31 33 3A 20 63 61 6C 6C 20 70 63    ld a,13: call pc
007170:  68 61 72 0D 0A 09 6C 64 20 61 2C 31 30 3A 20 6A    har...ld a,10: j
007180:  70 20 20 20 70 63 68 61 72 0D 0A 0D 0A 09 3B 2D    p   pchar.....;-
007190:  2D 2D 20 73 75 62 72 09 4F 75 74 70 75 74 20 48    -- subr.Output H
0071A0:  4C 20 61 73 20 28 75 70 20 74 6F 29 20 35 2D 64    L as (up to) 5-d
0071B0:  69 67 69 74 20 64 65 63 69 6D 61 6C 0D 0A 0D 0A    igit decimal....
0071C0:  2E 70 72 5F 68 6C 09 6C 64 20 63 2C 30 0D 0A 09    .pr_hl.ld c,0...
0071D0:  6C 64 20 64 65 2C 31 30 30 30 30 3A 20 63 61 6C    ld de,10000: cal
0071E0:  6C 20 70 72 68 6C 72 0D 0A 09 6C 64 20 64 65 2C    l prhlr...ld de,
0071F0:  31 30 30 30 20 3A 20 63 61 6C 6C 20 70 72 68 6C    1000 : call prhl
007200:  72 0D 0A 09 6C 64 20 64 65 2C 31 30 30 20 20 3A    r...ld de,100  :
007210:  20 63 61 6C 6C 20 70 72 68 6C 72 0D 0A 09 6C 64     call prhlr...ld
007220:  20 64 65 2C 31 30 20 20 20 3A 20 63 61 6C 6C 20     de,10   : call 
007230:  70 72 68 6C 72 0D 0A 09 6C 64 20 64 65 2C 31 20    prhlr...ld de,1 
007240:  20 20 20 3A 20 6C 64 20 63 2C 31 0D 0A 2E 70 72       : ld c,1...pr
007250:  68 6C 72 09 78 6F 72 20 61 0D 0A 2E 70 72 68 6C    hlr.xor a...prhl
007260:  6C 70 09 73 63 66 3A 20 63 63 66 3A 20 73 62 63    lp.scf: ccf: sbc
007270:  20 68 6C 2C 64 65 3A 20 6A 72 20 63 2C 70 72 68     hl,de: jr c,prh
007280:  6C 6F 0D 0A 09 69 6E 63 20 61 3A 20 6A 72 20 70    lo...inc a: jr p
007290:  72 68 6C 6C 70 0D 0A 2E 70 72 68 6C 6F 09 61 64    rhllp...prhlo.ad
0072A0:  64 20 68 6C 2C 64 65 3A 20 6F 72 20 61 3A 20 6A    d hl,de: or a: j
0072B0:  72 20 6E 7A 2C 70 72 68 6C 79 3A 20 63 70 20 63    r nz,prhly: cp c
0072C0:  3A 20 72 65 74 20 7A 0D 0A 2E 70 72 68 6C 79 09    : ret z...prhly.
0072D0:  6C 64 20 63 2C 31 3A 20 61 64 64 20 26 33 30 3A    ld c,1: add &30:
0072E0:  20 63 61 6C 6C 20 70 63 68 61 72 3A 20 72 65 74     call pchar: ret
0072F0:  0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 09 3B 2A 2A 2A 20    ...........;*** 
007300:  54 72 61 63 6B 2D 49 6E 66 6F 0D 0A 00 00 00 00    Track-Info......
007310:  06 00 01 00 02 09 4E E5 06 00 C6 02 00 00 00 02    ......N.........
007320:  06 00 C2 02 00 00 00 02 06 00 C7 02 00 00 00 02    ................
007330:  06 00 C3 02 00 00 00 02 06 00 C8 02 00 00 00 02    ................
007340:  06 00 C4 02 00 00 00 02 06 00 C9 02 00 00 00 02    ................
007350:  06 00 C5 02 00 00 00 02 06 00 C1 02 00 00 00 02    ................
007360:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
007370:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
007380:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
007390:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
0073A0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
0073B0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
0073C0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
0073D0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
0073E0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
0073F0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
007400:  6D 0D 0A 0D 0A 2E 6C 62 66 61 6B 65 09 64 73 20    m.....lbfake.ds 
007410:  32 35 36 0D 0A 0D 0A 0D 0A 0D 0A 09 3B 2B 2B 2B    256.........;+++
007420:  20 52 4F 55 54 09 43 68 61 6E 67 65 20 64 72 69     ROUT.Change dri
007430:  76 65 0D 0A 0D 0A 2E 64 72 69 76 65 61 09 6C 64    ve.....drivea.ld
007440:  20 65 2C 30 3A 20 63 61 6C 6C 20 26 39 32 41 35     e,0: call &92A5
007450:  3A 20 6A 70 20 6D 6F 75 73 65 0D 0A 2E 64 72 69    : jp mouse...dri
007460:  76 65 62 09 6C 64 20 65 2C 31 3A 20 63 61 6C 6C    veb.ld e,1: call
007470:  20 26 39 32 41 35 3A 20 6A 70 20 6D 6F 75 73 65     &92A5: jp mouse
007480:  0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 09 3B 2A 2A    .............;**
007490:  2A 20 4D 45 4E 55 09 53 65 61 72 63 68 20 6D 65    * MENU.Search me
0074A0:  6E 75 0D 0A 0D 0A 2E 73 65 61 72 63 68 09 6C 64    nu.....search.ld
0074B0:  20 68 6C 2C 6D 73 65 61 72 63 3A 20 6C 64 20 64     hl,msearc: ld d
0074C0:  65 2C 69 73 65 61 72 63 0D 0A 09 63 61 6C 6C 20    e,isearc...call 
0074D0:  26 39 32 37 45 3A 20 6A 70 20 63 2C 73 65 6C 65    &927E: jp c,sele
0074E0:  63 74 3A 20 63 70 20 26 46 46 3A 20 6A 70 20 7A    ct: cp &FF: jp z
0074F0:  2C 6D 6F 75 73 65 0D 0A 09 63 70 20 31 3A 20 6A    ,mouse...cp 1: j
007500:  70 20 7A 2C 66 69 6E 64 0D 0A 09 63 70 20 32 3A    p z,find...cp 2:
007510:  20 6A 70 20 7A 2C 6E 65 78 74 0D 0A 09 6A 70 20     jp z,next...jp 
007520:  73 65 61 72 63 68 0D 0A 0D 0A 09 3B 2B 2B 2B 20    search.....;+++ 
007530:  52 4F 55 54 09 46 69 6E 64 20 66 69 6C 65 6E 61    ROUT.Find filena
007540:  6D 65 0D 0A 0D 0A 2E 66 69 6E 64 09 6C 64 20 68    me.....find.ld h
007550:  2C 33 31 3A 20 6C 64 20 6C 2C 38 30 0D 0A 09 6C    ,31: ld l,80...l
007560:  64 20 64 2C 31 38 3A 20 6C 64 20 65 2C 34 34 0D    d d,18: ld e,44.
007570:  0A 09 63 61 6C 6C 20 26 39 32 33 46 0D 0A 09 63    ..call &923F...c
007580:  61 6C 6C 20 26 39 32 38 31 0D 0A 09 6C 64 20 64    all &9281...ld d
007590:  65 2C 37 39 3A 20 63 61 6C 6C 20 26 39 32 37 38    e,79: call &9278
0075A0:  0D 0A 09 6C 64 20 61 2C 31 3A 20 63 61 6C 6C 20    ...ld a,1: call 
0075B0:  26 39 32 37 42 09 09 09 3B 55 70 70 65 72 20 63    &927B...;Upper c
0075C0:  61 73 65 0D 0A 0D 0A 09 6C 64 20 68 6C 2C 66 69    ase.....ld hl,fi
0075D0:  6E 64 74 78 3A 20 63 61 6C 6C 20 26 39 32 30 33    ndtx: call &9203
0075E0:  0D 0A 09 6C 64 20 64 2C 33 33 3A 20 6C 64 20 65    ...ld d,33: ld e
0075F0:  2C 31 30 38 3A 20 6F 72 20 61 0D 0A 09 6C 64 20    ,108: or a...ld 
007600:  0A 09 6C 64 64 72 3A 20 72 65 74 0D 0A 0D 0A 0D    ..lddr: ret.....
007610:  0A 09 3B 2B 2B 2B 20 52 4F 55 54 09 50 72 69 6E    ..;+++ ROUT.Prin
007620:  74 20 64 69 73 63 0D 0A 0D 0A 2E 70 72 72 65 63    t disc.....prrec
007630:  09 63 61 6C 6C 20 26 39 32 42 44 3A 20 6A 70 20    .call &92BD: jp 
007640:  6E 63 2C 6B 65 79 73 0D 0A 09 6C 64 20 61 20 2C    nc,keys...ld a ,
007650:  26 43 33 20 3A 20 6C 64 20 28 70 63 68 61 72 2B    &C3 : ld (pchar+
007660:  30 29 2C 61 0D 0A 09 6C 64 20 68 6C 2C 70 72 6E    0),a...ld hl,prn
007670:  20 3A 20 6C 64 20 28 70 63 68 61 72 2B 31 29 2C     : ld (pchar+1),
007680:  68 6C 0D 0A 0D 0A 09 6C 64 20 61 2C 28 63 75 72    hl.....ld a,(cur
007690:  72 65 63 29 0D 0A 09 63 61 6C 6C 20 6F 75 74 70    rec)...call outp
0076A0:  75 74 0D 0A 09 6A 70 20 6B 65 79 73 0D 0A 0D 0A    ut...jp keys....
0076B0:  0D 0A 0D 0A 09 3B 2B 2B 2B 20 52 4F 55 54 09 47    .....;+++ ROUT.G
0076C0:  6F 20 74 6F 20 64 69 73 63 0D 0A 0D 0A 2E 67 6F    o to disc.....go
0076D0:  74 6F 09 6C 64 20 68 2C 32 31 3A 20 6C 64 20 6C    to.ld h,21: ld l
0076E0:  2C 36 30 09 09 3B 49 6E 69 74 69 61 6C 69 73 65    ,60..;Initialise
0076F0:  20 77 69 6E 64 6F 77 0D 0A 09 6C 64 20 64 2C 33     window...ld d,3
007700:  38 3A 20 6C 64 20 65 2C 38 30 3A 20 63 61 6C 6C    8: ld e,80: call
007710:  20 26 39 32 33 43 09 3B 20 7C 0D 0A 09 6C 64 20     &923C.; |...ld 
007720:  68 2C 32 32 3A 20 6C 64 20 6C 2C 36 36 3A 20 63    h,22: ld l,66: c
007730:  61 6C 6C 20 26 39 32 32 34 09 3B 50 72 69 6E 74    all &9224.;Print
007740:  20 22 73 65 6C 65 63 74 20 64 69 73 63 22 0D 0A     "select disc"..
007750:  09 6C 64 20 68 6C 2C 67 6F 74 6F 74 78 3A 20 63    .ld hl,gototx: c
007760:  61 6C 6C 20 26 39 32 30 33 09 3B 20 7C 0D 0A 09    all &9203.; |...
007770:  63 61 6C 6C 20 26 39 32 43 30 09 09 09 3B 43 6C    call &92C0...;Cl
007780:  65 61 72 20 61 6C 6C 20 63 6C 69 63 6B 20 7A 6F    ear all click zo
007790:  6E 65 73 0D 0A 09 78 6F 72 20 61 3A 20 6C 64 20    nes...xor a: ld 
0077A0:  28 73 74 61 74 75 73 2B 37 29 2C 61 09 09 3B 53    (status+7),a..;S
0077B0:  74 61 72 74 69 6E 67 20 61 74 20 72 65 63 6F 72    tarting at recor
0077C0:  64 20 30 0D 0A 09 6C 64 20 69 78 2C 73 74 61 74    d 0...ld ix,stat
0077D0:  75 73 09 09 09 3B 53 65 74 20 75 70 20 6C 69 73    us...;Set up lis
0077E0:  74 20 62 6F 78 0D 0A 09 6C 64 20 61 2C 28 6C 73    t box...ld a,(ls
0077F0:  74 72 65 63 29 3A 20 69 6E 63 20 61 09 09 3B 20    trec): inc a..; 
007800:  63 2C 31 32 3A 20 6C 64 20 68 6C 2C 70 6E 61 6D    c,12: ld hl,pnam
007810:  65 3A 20 63 61 6C 6C 20 26 39 32 37 32 0D 0A 09    e: call &9272...
007820:  6A 70 20 63 2C 66 69 6E 64 71 74 0D 0A 09 63 61    jp c,findqt...ca
007830:  6C 6C 20 65 78 70 61 6E 64 0D 0A 0D 0A 09 78 6F    ll expand.....xo
007840:  72 20 61 3A 20 6C 64 20 28 63 75 72 72 65 63 29    r a: ld (currec)
007850:  2C 61 09 09 09 3B 52 65 63 6F 72 64 20 30 0D 0A    ,a...;Record 0..
007860:  09 20 20 20 20 20 20 20 6C 64 20 28 69 73 65 61    .       ld (isea
007870:  72 63 29 2C 61 09 09 09 3B 22 46 69 6E 64 20 6E    rc),a...;"Find n
007880:  65 78 74 22 20 65 6E 61 62 6C 65 64 0D 0A 0D 0A    ext" enabled....
007890:  2E 66 64 6C 6F 6F 70 09 63 61 6C 6C 20 73 74 61    .fdloop.call sta
0078A0:  74 73 09 09 09 09 3B 46 69 6E 64 20 72 65 63 6F    ts....;Find reco
0078B0:  72 64 0D 0A 09 6C 64 20 64 65 2C 33 32 3A 20 61    rd...ld de,32: a
0078C0:  64 64 20 68 6C 2C 64 65 3A 20 6C 64 20 62 2C 28    dd hl,de: ld b,(
0078D0:  68 6C 29 09 09 3B 47 65 74 20 6C 65 6E 67 74 68    hl)..;Get length
0078E0:  0D 0A 09 6C 64 20 61 2C 62 3A 20 6F 72 20 61 3A    ...ld a,b: or a:
0078F0:  20 6A 70 20 7A 2C 6E 78 74 64 73 63 09 09 3B 53     jp z,nxtdsc..;S
007900:  6B 69 70 20 69 66 20 6E 6F 20 66 69 6C 65 73 0D    kip if no files.
007910:  0A 09 6C 64 20 64 65 2C 31 37 3A 20 61 64 64 20    ..ld de,17: add 
007920:  68 6C 2C 64 65 09 09 09 3B 45 78 61 6D 69 6E 65    hl,de...;Examine
007930:  0D 0A 09 63 61 6C 6C 20 65 78 61 6D 3A 20 6A 70    ...call exam: jp
007940:  20 6E 63 2C 66 69 6E 64 71 74 09 09 09 3B 20 7C     nc,findqt...; |
007950:  20 71 75 69 74 20 69 66 20 66 6F 75 6E 64 0D 0A     quit if found..
007960:  2E 6E 78 74 64 73 63 09 6C 64 20 61 2C 28 6C 73    .nxtdsc.ld a,(ls
007970:  74 72 65 63 29 3A 20 6C 64 20 63 2C 61 09 09 09    trec): ld c,a...
007980:  3B 49 73 20 74 68 69 73 20 74 68 65 20 6C 61 73    ;Is this the las
007990:  74 20 72 65 63 6F 72 64 3F 0D 0A 09 6C 64 20 61    t record?...ld a
0079A0:  2C 28 63 75 72 72 65 63 29 3A 20 63 70 20 63 3A    ,(currec): cp c:
0079B0:  20 6A 72 20 7A 2C 6E 6F 74 66 6E 64 09 3B 20 7C     jr z,notfnd.; |
0079C0:  20 79 65 73 2C 20 73 6F 20 71 75 69 74 0D 0A 09     yes, so quit...
0079D0:  69 6E 63 20 61 3A 20 6C 64 20 28 63 75 72 72 65    inc a: ld (curre
0079E0:  63 29 2C 61 3A 20 6A 72 20 66 64 6C 6F 6F 70 09    c),a: jr fdloop.
0079F0:  09 3B 20 7C 20 6E 6F 20 2C 20 73 6F 20 6C 6F 6F    .; | no , so loo
007A00:  7C 0D 0A 09 6C 64 20 62 2C 31 35 3A 20 6C 64 20    |...ld b,15: ld 
007A10:  63 2C 38 09 09 09 3B 20 7C 0D 0A 09 6C 64 20 64    c,8...; |...ld d
007A20:  65 2C 6C 62 66 61 6B 65 09 09 09 3B 20 7C 0D 0A    e,lbfake...; |..
007A30:  09 6C 64 20 68 2C 33 36 3A 20 6C 64 20 6C 2C 36    .ld h,36: ld l,6
007A40:  34 09 09 3B 20 7C 0D 0A 09 63 61 6C 6C 20 26 39    4..; |...call &9
007A50:  32 46 33 09 09 09 3B 20 7C 0D 0A 09 63 61 6C 6C    2F3...; |...call
007A60:  20 6C 73 74 73 75 62 09 09 09 3B 44 69 73 70 6C     lstsub...;Displ
007A70:  61 79 20 74 68 65 20 6C 69 73 74 20 62 6F 78 21    ay the list box!
007A80:  0D 0A 0D 0A 2E 6C 69 73 74 6D 73 09 63 61 6C 6C    .....listms.call
007A90:  20 26 39 32 36 39 09 09 09 3B 57 61 69 74 20 66     &9269...;Wait f
007AA0:  6F 72 20 72 65 6C 65 61 73 65 20 6F 66 20 63 6C    or release of cl
007AB0:  69 63 6B 20 6B 65 79 73 0D 0A 09 63 61 6C 6C 20    ick keys...call 
007AC0:  26 39 32 36 33 09 09 09 3B 4D 6F 75 73 65 20 72    &9263...;Mouse r
007AD0:  6F 75 74 69 6E 65 0D 0A 09 63 70 20 31 3A 20 6A    outine...cp 1: j
007AE0:  70 20 7A 2C 6C 69 73 74 73 6C 0D 0A 09 63 70 20    p z,listsl...cp 
007AF0:  32 3A 20 6A 70 20 7A 2C 6C 69 73 74 75 70 0D 0A    2: jp z,listup..
007B00:  09 63 70 20 33 3A 20 6A 70 20 7A 2C 6C 69 73 74    .cp 3: jp z,list
007B10:  64 6E 0D 0A 2E 6C 69 73 74 62 70 09 63 61 6C 6C    dn...listbp.call
007B20:  20 26 39 32 44 32 3A 20 6A 70 20 6C 69 73 74 6D     &92D2: jp listm
007B30:  73 0D 0A 0D 0A 2E 6C 69 73 74 75 70 09 6C 64 20    s.....listup.ld 
007B40:  61 2C 28 73 74 61 74 75 73 2B 37 29 3A 20 6F 72    a,(status+7): or
007B50:  20 61 3A 20 6A 70 20 7A 2C 6C 69 73 74 6D 73 0D     a: jp z,listms.
007B60:  0A 09 6C 64 20 69 78 2C 73 74 61 74 75 73 3A 20    ..ld ix,status: 
007B70:  63 61 6C 6C 20 26 39 32 45 44 0D 0A 09 63 61 6C    call &92ED...cal
007B80:  6C 20 6C 73 74 73 75 62 3A 20 6A 70 20 6C 69 73    l lstsub: jp lis
007B90:  74 6D 73 0D 0A 2E 6C 69 73 74 64 6E 09 6C 64 20    tms...listdn.ld 
007BA0:  61 2C 28 73 74 61 74 75 73 2B 37 29 3A 20 61 64    a,(status+7): ad
007BB0:  64 20 37 3A 20 6C 64 20 63 2C 61 0D 0A 09 6C 64    d 7: ld c,a...ld
007BC0:  20 61 2C 28 73 74 61 74 75 73 2B 31 29 3A 20 63     a,(status+1): c
007BD0:  70 20 63 20 3A 20 6A 70 20 7A 2C 6C 69 73 74 6D    p c : jp z,listm
007BE0:  73 0D 0A 09 6C 64 20 69 78 2C 73 74 61 74 75 73    s...ld ix,status
007BF0:  3A 20 63 61 6C 6C 20 26 39 32 46 30 0D 0A 09 63    : call &92F0...c
007C00:  70 0D 0A 0D 0A 2E 6E 6F 74 66 6E 64 09 6C 64 20    p.....notfnd.ld 
007C10:  68 6C 2C 6E 66 6E 64 74 78 3A 20 6C 64 20 61 2C    hl,nfndtx: ld a,
007C20:  26 38 32 3A 20 63 61 6C 6C 20 26 39 32 34 38 09    &82: call &9248.
007C30:  3B 22 46 69 6C 65 20 6E 6F 74 20 66 6F 75 6E 64    ;"File not found
007C40:  22 0D 0A 09 6C 64 20 61 2C 32 3A 20 6C 64 20 28    "...ld a,2: ld (
007C50:  69 73 65 61 72 63 29 2C 61 09 09 09 3B 20 7C 20    isearc),a...; | 
007C60:  64 69 73 61 62 6C 65 20 22 66 69 6E 64 20 6E 65    disable "find ne
007C70:  78 74 22 0D 0A 2E 66 69 6E 64 71 74 09 78 6F 72    xt"...findqt.xor
007C80:  20 61 3A 20 63 61 6C 6C 20 26 39 32 37 42 09 09     a: call &927B..
007C90:  09 3B 51 75 69 74 0D 0A 09 63 61 6C 6C 20 73 74    .;Quit...call st
007CA0:  61 74 73 3A 20 63 61 6C 6C 20 63 61 72 64 09 09    ats: call card..
007CB0:  09 3B 20 7C 0D 0A 09 6C 64 20 61 2C 28 6C 73 74    .; |...ld a,(lst
007CC0:  72 65 63 29 3A 20 6C 64 20 63 2C 61 09 09 09 3B    rec): ld c,a...;
007CD0:  41 72 65 20 77 65 20 6F 6E 20 74 68 65 20 6C 61    Are we on the la
007CE0:  73 74 20 72 65 63 6F 72 64 3F 0D 0A 09 6C 64 20    st record?...ld 
007CF0:  61 2C 28 63 75 72 72 65 63 29 3A 20 63 70 20 63    a,(currec): cp c
007D00:  3A 20 6A 70 20 6E 7A 2C 6B 65 79 73 09 09 3B 20    : jp nz,keys..; 
007D10:  7C 0D 0A 09 6C 64 20 61 2C 32 3A 20 6C 64 20 28    |...ld a,2: ld (
007D20:  69 73 65 61 72 63 29 2C 61 3A 20 6A 70 20 6B 65    isearc),a: jp ke
007D30:  79 73 09 09 3B 20 7C 20 69 66 20 73 6F 2C 20 64    ys..; | if so, d
007D40:  69 73 61 62 6C 65 20 22 66 69 6E 64 20 6E 65 78    isable "find nex
007D50:  74 22 0D 0A 0D 0A 0D 0A 09 3B 2D 2D 2D 20 73 75    t".......;--- su
007D60:  62 72 09 45 78 61 6D 69 6E 65 20 42 20 66 69 6C    br.Examine B fil
007D70:  65 6E 61 6D 65 73 20 61 74 20 48 4C 20 74 6F 20    enames at HL to 
007D80:  73 65 65 20 69 66 20 65 6E 61 6D 65 20 6F 63 63    see if ename occ
007D90:  75 72 73 0D 0A 09 3B 09 09 52 65 74 75 72 6E 20    urs...;..Return 
007DA0:  4E 43 20 69 66 20 79 65 73 2C 20 43 20 69 66 20    NC if yes, C if 
007DB0:  6E 6F 74 0D 0A 0D 0A 2E 65 78 61 6D 09 6C 64 20    not.....exam.ld 
007DC0:  63 2C 31 32 3A 20 6C 64 20 69 78 2C 65 6E 61 6D    c,12: ld ix,enam
007DD0:  65 3A 20 6C 64 20 64 2C 31 0D 0A 2E 65 78 61 6D    e: ld d,1...exam
007DE0:  6C 70 09 6C 64 20 61 2C 28 69 78 29 3A 20 20 20    lp.ld a,(ix):   
007DF0:  20 20 20 20 20 20 20 63 70 20 22 3F 22 3A 20 6A           cp "?": j
007E00:  61 6C 6C 20 6C 73 74 73 75 62 3A 20 6A 70 20 6C    all lstsub: jp l
007E10:  69 73 74 6D 73 0D 0A 0D 0A 2E 6C 69 73 74 73 6C    istms.....listsl
007E20:  09 6C 64 20 61 2C 63 3A 20 73 75 62 20 36 36 0D    .ld a,c: sub 66.
007E30:  0A 09 73 72 6C 20 61 3A 20 73 72 6C 20 61 3A 20    ..srl a: srl a: 
007E40:  73 72 6C 20 61 3A 20 6C 64 20 63 2C 61 0D 0A 09    srl a: ld c,a...
007E50:  6C 64 20 61 20 2C 28 73 74 61 74 75 73 2B 37 29    ld a ,(status+7)
007E60:  3A 20 61 64 64 20 63 0D 0A 09 6C 64 20 62 63 2C    : add c...ld bc,
007E70:  28 6C 73 74 72 65 63 20 20 29 3A 20 69 6E 63 20    (lstrec  ): inc 
007E80:  63 3A 20 63 70 20 63 3A 20 6A 70 20 6E 63 2C 6C    c: cp c: jp nc,l
007E90:  69 73 74 62 70 0D 0A 09 6C 64 20 28 63 75 72 72    istbp...ld (curr
007EA0:  65 63 29 2C 61 0D 0A 09 63 61 6C 6C 20 72 65 63    ec),a...call rec
007EB0:  61 64 64 3A 20 63 61 6C 6C 20 63 61 72 64 0D 0A    add: call card..
007EC0:  09 6A 70 20 6B 65 79 73 0D 0A 0D 0A 0D 0A 0D 0A    .jp keys........
007ED0:  09 3B 2D 2D 2D 20 73 75 62 72 09 4C 69 73 74 20    .;--- subr.List 
007EE0:  64 69 73 70 6C 61 79 20 73 75 62 73 74 69 74 75    display substitu
007EF0:  74 65 0D 0A 0D 0A 2E 6C 73 74 73 75 62 09 6C 64    te.....lstsub.ld
007F00:  20 61 2C 28 73 74 61 74 75 73 2B 37 29 3A 20 6C     a,(status+7): l
007F10:  64 20 63 2C 61 0D 0A 09 6C 64 20 61 2C 28 73 74    d c,a...ld a,(st
007F20:  61 74 75 73 2B 31 29 3A 20 73 75 62 20 63 3A 20    atus+1): sub c: 
007F30:  6C 64 20 65 2C 61 0D 0A 09 6C 64 20 62 2C 33 37    ld e,a...ld b,37
007F40:  3A 20 6C 64 20 63 2C 36 36 3A 20 6C 64 20 61 2C    : ld c,66: ld a,
007F50:  28 73 74 61 74 75 73 2B 37 29 0D 0A 2E 6C 73 74    (status+7)...lst
007F60:  73 6C 70 09 70 75 73 68 20 61 66 0D 0A 09 20 70    slp.push af... p
007F70:  75 73 68 20 64 65 3A 20 63 61 6C 6C 20 72 65 63    ush de: call rec
007F80:  61 64 64 3A 20 70 6F 70 20 64 65 3A 20 63 61 6C    add: pop de: cal
007F90:  6C 20 6C 6F 63 61 74 65 0D 0A 09 20 70 75 73 68    l locate... push
007FA0:  20 62 63 3A 20 63 61 6C 6C 20 73 74 72 31 37 20     bc: call str17 
007FB0:  3A 20 70 6F 70 20 62 63 0D 0A 09 20 64 65 63 20    : pop bc... dec 
007FC0:  65 20 3A 20 6A 72 20 7A 2C 6C 73 74 73 71 74 0D    e : jr z,lstsqt.
007FD0:  0A 09 20 6C 64 20 61 2C 63 3A 20 61 64 64 20 38    .. ld a,c: add 8
007FE0:  3A 20 6C 64 20 63 2C 61 0D 0A 09 20 63 70 20 31    : ld c,a... cp 1
007FF0:  33 30 3A 20 6A 72 20 7A 2C 6C 73 74 73 71 74 0D    30: jr z,lstsqt.
008000:  72 20 7A 2C 65 78 61 6D 63 74 09 3B 43 6F 6D 70    r z,examct.;Comp
008010:  61 72 65 20 66 69 6C 65 6E 61 6D 65 0D 0A 09 6C    are filename...l
008020:  64 20 65 2C 28 68 6C 29 3A 20 72 65 73 20 37 2C    d e,(hl): res 7,
008030:  65 3A 20 63 70 20 65 20 20 3A 20 6A 72 20 7A 2C    e: cp e  : jr z,
008040:  65 78 61 6D 63 74 09 3B 20 7C 0D 0A 09 6C 64 20    examct.; |...ld 
008050:  64 2C 30 09 09 09 09 09 3B 20 7C 20 64 6F 65 73    d,0.....; | does
008060:  20 6E 6F 74 20 6D 61 74 63 68 0D 0A 2E 65 78 61     not match...exa
008070:  6D 63 74 09 69 6E 63 20 69 78 3A 20 69 6E 63 20    mct.inc ix: inc 
008080:  68 6C 09 09 09 09 3B 20 7C 0D 0A 09 64 65 63 20    hl....; |...dec 
008090:  63 3A 20 6A 72 20 6E 7A 2C 65 78 61 6D 6C 70 09    c: jr nz,examlp.
0080A0:  09 09 3B 20 7C 0D 0A 0D 0A 09 6C 64 20 61 2C 64    ..; |.....ld a,d
0080B0:  3A 20 63 70 20 31 3A 20 72 65 74 20 7A 09 09 09    : cp 1: ret z...
0080C0:  3B 52 65 74 75 72 6E 20 4E 43 20 69 66 20 79 65    ;Return NC if ye
0080D0:  73 0D 0A 09 64 6A 6E 7A 20 65 78 61 6D 3A 20 73    s...djnz exam: s
0080E0:  63 66 3A 20 72 65 74 09 09 09 3B 4C 6F 6F 70 20    cf: ret...;Loop 
0080F0:  74 68 72 6F 75 67 68 20 61 6C 6C 20 66 69 6C 65    through all file
008100:  6E 61 6D 65 73 0D 0A 0D 0A 0D 0A 09 3B 2D 2D 2D    names.......;---
008110:  20 73 75 62 72 09 45 78 70 61 6E 64 20 66 69 6C     subr.Expand fil
008120:  65 6E 61 6D 65 20 61 74 20 70 6E 61 6D 65 20 74    ename at pname t
008130:  6F 20 65 6E 61 6D 65 0D 0A 0D 0A 2E 65 78 70 61    o ename.....expa
008140:  6E 64 09 6C 64 20 68 6C 2C 65 6E 61 6D 65 20 20    nd.ld hl,ename  
008150:  3A 20 6C 64 20 28 68 6C 29 2C 33 32 0D 0A 09 6C    : ld (hl),32...l
008160:  64 20 64 65 2C 65 6E 61 6D 65 2B 31 3A 20 6C 64    d de,ename+1: ld
008170:  20 62 63 2C 31 31 3A 20 6C 64 69 72 0D 0A 0D 0A     bc,11: ldir....
008180:  09 6C 64 20 69 78 2C 70 6E 61 6D 65 3A 20 6C 64    .ld ix,pname: ld
008190:  20 62 2C 30 0D 0A 09 6C 64 20 69 79 2C 65 6E 61     b,0...ld iy,ena
0081A0:  6D 65 3A 20 6C 64 20 28 69 79 2B 38 29 2C 22 2E    me: ld (iy+8),".
0081B0:  22 0D 0A 0D 0A 2E 65 78 5F 6C 70 31 09 6C 64 20    ".....ex_lp1.ld 
0081C0:  61 2C 28 69 78 29 3A 20 69 6E 63 20 69 78 09 09    a,(ix): inc ix..
0081D0:  09 3B 49 6E 69 74 69 61 6C 20 70 61 72 74 20 6F    .;Initial part o
0081E0:  66 20 66 69 6C 65 6E 61 6D 65 0D 0A 09 6F 72 20    f filename...or 
0081F0:  61 20 20 20 3A 20 72 65 74 20 7A 09 09 09 09 3B    a   : ret z....;
008200:  0A 09 70 6F 70 20 61 66 3A 20 69 6E 63 20 61 3A    ..pop af: inc a:
008210:  20 6A 72 20 6C 73 74 73 6C 70 0D 0A 2E 6C 73 74     jr lstslp...lst
008220:  73 71 74 09 70 6F 70 20 61 66 3A 20 72 65 74 0D    sqt.pop af: ret.
008230:  0A 0D 0A 2E 6C 6F 63 61 74 65 09 70 75 73 68 20    ....locate.push 
008240:  68 6C 0D 0A 09 20 6C 64 20 68 2C 62 3A 20 6C 64    hl... ld h,b: ld
008250:  20 6C 2C 63 3A 20 63 61 6C 6C 20 26 39 32 32 34     l,c: call &9224
008260:  0D 0A 09 70 6F 70 20 68 6C 3A 20 72 65 74 0D 0A    ...pop hl: ret..
008270:  0D 0A 2E 73 74 72 31 37 09 6C 64 20 62 2C 31 37    ...str17.ld b,17
008280:  0D 0A 2E 73 74 72 31 37 6C 09 6C 64 20 61 2C 28    ...str17l.ld a,(
008290:  68 6C 29 3A 20 6F 72 20 61 3A 20 72 65 74 20 7A    hl): or a: ret z
0082A0:  0D 0A 09 63 61 6C 6C 20 26 39 32 30 30 3A 20 69    ...call &9200: i
0082B0:  6E 63 20 68 6C 3A 20 64 6A 6E 7A 20 73 74 72 31    nc hl: djnz str1
0082C0:  37 6C 0D 0A 09 72 65 74 0D 0A 0D 0A 0D 0A 09 3B    7l...ret.......;
0082D0:  2A 2A 2A 20 44 41 54 41 09 4C 69 73 74 2D 62 6F    *** DATA.List-bo
0082E0:  78 20 66 61 6B 65 20 28 73 74 75 70 69 64 20 44    x fake (stupid D
0082F0:  45 53 20 72 65 73 74 72 69 63 74 69 6F 6E 73 2E    ES restrictions.
008300:  2E 2E 21 29 0D 0A 0D 0A 2E 73 74 61 74 75 73 09    ..!).....status.
008310:  64 62 20 31 37 09 09 3B 57 69 64 74 68 20 6F 66    db 17..;Width of
008320:  20 6C 69 73 74 20 62 6F 78 0D 0A 09 64 62 20 30     list box...db 0
008330:  09 09 3B 4E 75 6D 62 65 72 20 6F 66 20 65 6E 74    ..;Number of ent
008340:  72 69 65 73 20 69 6E 20 6C 69 73 74 0D 0A 09 64    ries in list...d
008350:  62 20 38 09 09 3B 4E 75 6D 62 65 72 20 64 69 73    b 8..;Number dis
008360:  70 6C 61 79 65 64 20 61 74 20 6F 6E 63 65 0D 0A    played at once..
008370:  09 64 77 20 6C 62 66 61 6B 65 09 3B 41 64 64 72    .dw lbfake.;Addr
008380:  65 73 73 20 6F 66 20 73 74 72 69 6E 67 73 0D 0A    ess of strings..
008390:  09 64 62 20 33 36 09 09 3B 58 20 63 6F 2D 6F 72    .db 36..;X co-or
0083A0:  64 69 6E 61 74 65 0D 0A 09 64 62 20 36 36 09 09    dinate...db 66..
0083B0:  3B 59 20 63 6F 2D 6F 72 64 69 6E 61 74 65 0D 0A    ;Y co-ordinate..
0083C0:  09 64 62 20 30 09 09 3B 54 6F 70 20 76 69 73 69    .db 0..;Top visi
0083D0:  62 6C 65 20 69 74 65 6D 20 69 6E 20 6C 69 73 74    ble item in list
0083E0:  0D 0A 09 64 62 20 30 09 09 3B 43 75 72 72 65 6E    ...db 0..;Curren
0083F0:  74 6C 79 20 73 65 6C 65 63 74 65 64 20 69 74 65    tly selected ite
008400:  75 62 3A 20 65 78 20 64 65 2C 68 6C 09 3B 4C 6F    ub: ex de,hl.;Lo
008410:  67 20 64 69 73 63 0D 0A 0D 0A 09 6C 64 20 62 63    g disc.....ld bc
008420:  2C 28 6C 65 6E 67 74 68 29 3A 20 6C 64 20 61 2C    ,(length): ld a,
008430:  62 3A 20 6F 72 20 63 09 09 3B 43 6F 70 79 20 62    b: or c..;Copy b
008440:  61 63 6B 20 74 6F 20 6E 6F 72 6D 61 6C 0D 0A 09    ack to normal...
008450:  6A 72 20 7A 2C 64 6F 73 74 61 74 3A 20 6C 64 20    jr z,dostat: ld 
008460:  68 6C 2C 28 64 65 73 74 29 3A 20 6C 64 69 72 09    hl,(dest): ldir.
008470:  09 3B 20 7C 0D 0A 2E 64 6F 73 74 61 74 09 6C 64    .; |...dostat.ld
008480:  20 28 6C 61 73 74 61 64 29 2C 64 65 3A 20 63 61     (lastad),de: ca
008490:  6C 6C 20 73 74 61 74 73 3A 20 63 61 6C 6C 20 63    ll stats: call c
0084A0:  61 72 64 09 3B 50 72 69 6E 74 20 6E 65 77 20 63    ard.;Print new c
0084B0:  61 72 64 0D 0A 09 6A 70 20 6D 6F 75 73 65 0D 0A    ard...jp mouse..
0084C0:  0D 0A 2E 64 65 73 74 09 64 77 20 30 09 09 09 09    ...dest.dw 0....
0084D0:  09 3B 54 65 6D 70 6F 72 61 72 79 20 64 65 73 74    .;Temporary dest
0084E0:  69 6E 61 74 69 6F 6E 20 76 61 72 69 61 62 6C 65    ination variable
0084F0:  0D 0A 2E 6C 65 6E 67 74 68 09 64 77 20 30 09 09    ...length.dw 0..
008500:  09 09 09 3B 54 65 6D 70 6F 72 61 72 79 20 6C 65    ...;Temporary le
008510:  6E 67 74 68 20 76 61 72 69 61 62 6C 65 0D 0A 0D    ngth variable...
008520:  0A 09 3B 2D 2D 2D 20 73 75 62 72 09 45 6D 75 6C    ..;--- subr.Emul
008530:  61 74 65 20 4C 44 44 52 2C 20 62 75 74 20 77 69    ate LDDR, but wi
008540:  74 68 20 4C 44 49 52 20 70 61 72 61 6D 65 74 65    th LDIR paramete
008550:  72 73 0D 0A 09 3B 09 09 4F 6E 20 65 6E 74 72 79    rs...;..On entry
008560:  2C 20 48 4C 20 3D 20 77 68 65 72 65 20 74 6F 20    , HL = where to 
008570:  63 6F 70 79 20 66 72 6F 6D 0D 0A 09 3B 09 09 09    copy from...;...
008580:  20 20 44 45 20 3D 20 77 68 65 72 65 20 74 6F 20      DE = where to 
008590:  63 6F 70 79 20 74 6F 0D 0A 09 3B 09 09 09 20 20    copy to...;...  
0085A0:  42 43 20 3D 20 6E 75 6D 62 65 72 20 6F 66 20 62    BC = number of b
0085B0:  79 74 65 73 20 74 6F 20 63 6F 70 79 0D 0A 0D 0A    ytes to copy....
0085C0:  2E 6C 64 64 73 09 61 64 64 20 68 6C 2C 62 63 3A    .ldds.add hl,bc:
0085D0:  20 64 65 63 20 68 6C 3A 20 65 78 20 64 65 2C 68     dec hl: ex de,h
0085E0:  6C 0D 0A 09 61 64 64 20 68 6C 2C 62 63 3A 20 64    l...add hl,bc: d
0085F0:  65 63 20 68 6C 3A 20 65 78 20 64 65 2C 68 6C 0D    ec hl: ex de,hl.
008600:  54 72 61 63 6B 2D 49 6E 66 6F 0D 0A 00 00 00 00    Track-Info......
008610:  07 00 01 00 02 09 4E E5 07 00 C9 02 00 00 00 02    ......N.........
008620:  07 00 C5 02 00 00 00 02 07 00 C1 02 00 00 00 02    ................
008630:  07 00 C6 02 00 00 00 02 07 00 C2 02 00 00 00 02    ................
008640:  07 00 C7 02 00 00 00 02 07 00 C3 02 00 00 00 02    ................
008650:  07 00 C8 02 00 00 00 02 07 00 C4 02 00 00 00 02    ................
008660:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
008670:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
008680:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
008690:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
0086A0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
0086B0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
0086C0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
0086D0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
0086E0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
0086F0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
008700:  61 63 6B 2C 20 64 72 69 76 65 2C 20 61 64 64 72    ack, drive, addr
008710:  65 73 73 0D 0A 2E 72 65 61 64 74 70 09 6C 64 20    ess...readtp.ld 
008720:  63 2C 30 09 09 09 09 09 3B 53 65 63 74 6F 72 20    c,0.....;Sector 
008730:  28 73 65 6C 66 2D 6D 6F 64 69 66 79 69 6E 67 29    (self-modifying)
008740:  0D 0A 2E 72 65 61 64 6C 70 09 63 61 6C 6C 20 26    ...readlp.call &
008750:  39 32 39 33 3A 20 69 6E 63 20 63 3A 20 6C 64 20    9293: inc c: ld 
008760:  61 2C 63 09 09 3B 52 65 61 64 20 73 65 63 74 6F    a,c..;Read secto
008770:  72 0D 0A 09 70 75 73 68 20 64 65 3A 20 6C 64 20    r...push de: ld 
008780:  64 65 2C 35 31 32 3A 20 61 64 64 20 68 6C 2C 64    de,512: add hl,d
008790:  65 3A 20 70 6F 70 20 64 65 09 3B 20 7C 20 6E 65    e: pop de.; | ne
0087A0:  78 74 20 61 64 64 72 65 73 73 0D 0A 09 61 6E 64    xt address...and
0087B0:  20 26 46 3A 20 63 70 20 31 30 3A 20 6A 72 20 6E     &F: cp 10: jr n
0087C0:  7A 2C 72 65 61 64 6C 70 09 09 3B 20 7C 20 6C 6F    z,readlp..; | lo
0087D0:  6F 70 20 69 66 20 6E 6F 74 20 39 20 73 65 63 74    op if not 9 sect
0087E0:  6F 72 73 0D 0A 09 6C 64 20 69 79 2C 26 31 36 30    ors...ld iy,&160
0087F0:  30 3A 20 72 65 74 0D 0A 0D 0A 09 3B 2D 2D 2D 20    0: ret.....;--- 
008800:  73 75 62 72 09 49 6E 69 74 69 61 6C 69 73 65 20    subr.Initialise 
008810:  63 6F 6D 70 72 65 73 73 69 6F 6E 20 62 75 66 66    compression buff
008820:  65 72 0D 0A 0D 0A 2E 69 6E 69 74 63 6D 09 6C 64    er.....initcm.ld
008830:  20 68 6C 2C 26 32 38 30 30 3A 20 6C 64 20 28 77     hl,&2800: ld (w
008840:  72 69 74 63 70 29 2C 68 6C 0D 0A 09 72 65 74 0D    ritcp),hl...ret.
008850:  0A 0D 0A 09 3B 2D 2D 2D 20 73 75 62 72 09 57 72    ....;--- subr.Wr
008860:  69 74 65 20 41 20 74 6F 20 63 6F 6D 70 72 65 73    ite A to compres
008870:  73 69 6F 6E 20 62 75 66 66 65 72 0D 0A 09 3B 09    sion buffer...;.
008880:  09 64 6F 65 73 20 6E 6F 74 20 63 6F 72 72 75 70    .does not corrup
008890:  74 20 61 6E 79 20 72 65 67 69 73 74 65 72 73 0D    t any registers.
0088A0:  0A 0D 0A 2E 77 72 69 74 63 6D 09 70 75 73 68 20    ....writcm.push 
0088B0:  61 66 3A 20 70 75 73 68 20 68 6C 0D 0A 09 20 6C    af: push hl... l
0088C0:  64 20 68 6C 2C 28 77 72 69 74 63 70 29 3A 20 6C    d hl,(writcp): l
0088D0:  64 20 28 68 6C 29 2C 61 09 09 3B 50 6F 6B 65 20    d (hl),a..;Poke 
0088E0:  69 74 0D 0A 09 20 69 6E 63 20 68 6C 3A 20 6C 64    it... inc hl: ld
0088F0:  20 28 77 72 69 74 63 70 29 2C 68 6C 09 09 09 3B     (writcp),hl...;
008900:  72 65 61 65 72 09 09 09 3B 20 7C 0D 0A 0D 0A 2E    reaer...; |.....
008910:  75 70 64 65 6E 74 09 6C 64 20 65 2C 31 3A 20 63    updent.ld e,1: c
008920:  61 6C 6C 20 26 39 32 41 35 09 09 09 3B 44 72 69    all &92A5...;Dri
008930:  76 65 20 42 0D 0A 09 70 75 73 68 20 69 78 3A 20    ve B...push ix: 
008940:  70 6F 70 20 68 6C 3A 20 6C 64 20 64 65 2C 33 37    pop hl: ld de,37
008950:  3A 20 61 64 64 20 68 6C 2C 64 65 09 3B 4F 70 65    : add hl,de.;Ope
008960:  6E 20 66 69 6C 65 20 66 6F 72 20 6F 75 74 70 75    n file for outpu
008970:  74 0D 0A 09 6C 64 20 64 65 2C 26 43 30 30 30 3A    t...ld de,&C000:
008980:  20 6C 64 20 62 2C 31 32 3A 20 70 75 73 68 20 69     ld b,12: push i
008990:  78 09 09 3B 20 7C 0D 0A 09 63 61 6C 6C 20 20 26    x..; |...call  &
0089A0:  42 43 38 43 3A 20 70 6F 70 20 69 78 3A 20 6A 70    BC8C: pop ix: jp
0089B0:  20 6E 63 2C 63 72 65 61 65 72 09 3B 20 7C 0D 0A     nc,creaer.; |..
0089C0:  09 63 61 6C 6C 20 69 6E 69 74 63 6D 09 09 09 09    .call initcm....
0089D0:  3B 49 6E 69 74 69 61 6C 69 73 65 20 69 74 73 20    ;Initialise its 
0089E0:  62 75 66 66 65 72 0D 0A 09 63 61 6C 6C 20 26 39    buffer...call &9
0089F0:  33 32 36 09 09 09 09 3B 48 6F 6C 64 20 45 53 43    326....;Hold ESC
008A00:  20 66 6F 72 20 61 62 6F 72 74 0D 0A 09 6C 64 20     for abort...ld 
008A10:  68 2C 32 33 3A 20 6C 64 20 6C 2C 33 37 3A 20 63    h,23: ld l,37: c
008A20:  61 6C 6C 20 26 39 32 32 34 09 09 3B 50 72 69 6E    all &9224..;Prin
008A30:  74 20 22 72 65 73 74 6F 72 69 6E 67 22 0D 0A 09    t "restoring"...
008A40:  6C 64 20 68 6C 2C 63 72 65 77 74 78 3A 20 63 61    ld hl,crewtx: ca
008A50:  6C 6C 20 26 39 32 30 33 09 09 3B 20 7C 0D 0A 0D    ll &9203..; |...
008A60:  0A 09 6C 64 20 61 2C 22 49 22 3A 20 63 61 6C 6C    ..ld a,"I": call
008A70:  20 77 72 69 74 63 6D 3A 20 6C 64 20 61 2C 22 6D     writcm: ld a,"m
008A80:  22 3A 20 63 61 6C 6C 20 77 72 69 74 63 6D 09 3B    ": call writcm.;
008A90:  57 72 69 74 65 20 66 69 6C 65 20 69 64 65 6E 74    Write file ident
008AA0:  69 66 69 65 72 0D 0A 09 6C 64 20 61 2C 22 61 22    ifier...ld a,"a"
008AB0:  3A 20 63 61 6C 6C 20 77 72 69 74 63 6D 3A 20 6C    : call writcm: l
008AC0:  64 20 61 2C 22 67 22 3A 20 63 61 6C 6C 20 77 72    d a,"g": call wr
008AD0:  69 74 63 6D 09 3B 20 7C 0D 0A 09 6C 64 20 61 2C    itcm.; |...ld a,
008AE0:  22 65 22 3A 20 63 61 6C 6C 20 77 72 69 74 63 6D    "e": call writcm
008AF0:  3A 20 6C 64 20 61 2C 30 20 20 3A 20 63 61 6C 6C    : ld a,0  : call
008B00:  20 7C 0D 0A 09 63 70 20 22 2E 22 20 3A 20 6A 72     |...cp "." : jr
008B10:  20 20 7A 20 2C 64 6F 5F 65 78 74 09 09 09 3B 20      z ,do_ext...; 
008B20:  7C 0D 0A 09 63 70 20 22 2A 22 20 3A 20 6A 72 20    |...cp "*" : jr 
008B30:  20 7A 20 2C 64 6F 5F 66 6C 31 09 09 09 3B 20 7C     z ,do_fl1...; |
008B40:  0D 0A 09 63 70 20 22 20 22 20 3A 20 6A 72 20 20    ...cp " " : jr  
008B50:  7A 20 2C 65 78 5F 6C 70 31 09 09 09 3B 20 7C 0D    z ,ex_lp1...; |.
008B60:  0A 09 6C 64 20 28 69 79 29 2C 61 3A 20 69 6E 63    ..ld (iy),a: inc
008B70:  20 69 79 3A 20 69 6E 63 20 62 09 09 3B 20 7C 0D     iy: inc b..; |.
008B80:  0A 09 62 69 74 20 33 2C 62 3A 20 6A 72 20 20 7A    ..bit 3,b: jr  z
008B90:  20 2C 65 78 5F 6C 70 31 09 09 09 3B 20 7C 0D 0A     ,ex_lp1...; |..
008BA0:  2E 64 6F 5F 66 6C 31 09 62 69 74 20 33 2C 62 3A    .do_fl1.bit 3,b:
008BB0:  20 6A 72 20 20 6E 7A 2C 65 78 5F 6C 70 31 3A 20     jr  nz,ex_lp1: 
008BC0:  6C 64 20 28 69 79 29 2C 22 3F 22 09 3B 45 78 70    ld (iy),"?".;Exp
008BD0:  61 6E 64 20 2A 0D 0A 09 69 6E 63 20 69 79 3A 20    and *...inc iy: 
008BE0:  69 6E 63 20 62 3A 20 6A 72 20 64 6F 5F 66 6C 31    inc b: jr do_fl1
008BF0:  09 09 3B 20 7C 0D 0A 0D 0A 2E 64 6F 5F 65 78 74    ..; |.....do_ext
008C00:  09 6C 64 20 69 79 2C 65 6E 61 6D 65 2B 39 3A 20    .ld iy,ename+9: 
008C10:  6C 64 20 62 2C 39 09 09 09 3B 45 78 74 65 6E 73    ld b,9...;Extens
008C20:  69 6F 6E 0D 0A 2E 65 78 5F 6C 70 32 09 6C 64 20    ion...ex_lp2.ld 
008C30:  61 2C 28 69 78 29 3A 20 69 6E 63 20 69 78 09 09    a,(ix): inc ix..
008C40:  09 3B 20 7C 0D 0A 09 6F 72 20 61 20 20 3A 20 72    .; |...or a  : r
008C50:  65 74 20 7A 09 09 09 09 3B 20 7C 0D 0A 09 63 70    et z....; |...cp
008C60:  20 22 2A 22 3A 20 6A 72 20 7A 2C 64 6F 5F 66 6C     "*": jr z,do_fl
008C70:  32 09 09 09 3B 20 7C 0D 0A 09 63 70 20 22 20 22    2...; |...cp " "
008C80:  3A 20 6A 72 20 7A 2C 65 78 5F 6C 70 32 09 09 09    : jr z,ex_lp2...
008C90:  3B 20 7C 0D 0A 09 6C 64 20 28 69 79 29 2C 61 3A    ; |...ld (iy),a:
008CA0:  20 69 6E 63 20 69 79 3A 20 69 6E 63 20 62 09 09     inc iy: inc b..
008CB0:  3B 20 7C 0D 0A 09 6C 64 20 61 2C 62 3A 20 63 70    ; |...ld a,b: cp
008CC0:  20 31 32 3A 20 72 65 74 20 7A 3A 20 6A 72 20 65     12: ret z: jr e
008CD0:  78 5F 6C 70 32 09 09 3B 20 7C 0D 0A 2E 64 6F 5F    x_lp2..; |...do_
008CE0:  66 6C 32 09 6C 64 20 61 2C 62 3A 20 63 70 20 31    fl2.ld a,b: cp 1
008CF0:  32 3A 20 72 65 74 20 7A 3A 20 6C 64 20 28 69 79    2: ret z: ld (iy
008D00:  20 77 72 69 74 63 6D 09 3B 20 7C 0D 0A 09 6C 64     writcm.; |...ld
008D10:  20 61 2C 28 72 65 61 64 74 70 2B 31 29 3A 20 63     a,(readtp+1): c
008D20:  61 6C 6C 20 77 72 69 74 63 6D 09 09 09 3B 57 72    all writcm...;Wr
008D30:  69 74 65 20 66 6F 72 6D 61 74 0D 0A 09 70 75 73    ite format...pus
008D40:  68 20 69 78 3A 20 70 6F 70 20 68 6C 3A 20 6C 64    h ix: pop hl: ld
008D50:  20 62 2C 33 32 09 09 09 3B 57 72 69 74 65 20 74     b,32...;Write t
008D60:  69 74 6C 65 0D 0A 2E 77 72 74 74 6C 70 09 6C 64    itle...wrttlp.ld
008D70:  20 61 2C 28 68 6C 29 3A 20 63 61 6C 6C 20 77 72     a,(hl): call wr
008D80:  69 74 63 6D 3A 20 69 6E 63 20 68 6C 3A 20 64 6A    itcm: inc hl: dj
008D90:  6E 7A 20 77 72 74 74 6C 70 09 3B 20 7C 0D 0A 0D    nz wrttlp.; |...
008DA0:  0A 09 6C 64 20 62 2C 30 09 09 09 09 09 3B 46 69    ..ld b,0.....;Fi
008DB0:  72 73 74 20 74 72 61 63 6B 0D 0A 09 6C 64 20 28    rst track...ld (
008DC0:  73 74 61 63 6B 73 29 2C 73 70 09 09 09 09 3B 53    stacks),sp....;S
008DD0:  74 6F 72 65 20 73 74 61 63 6B 20 66 6F 72 20 61    tore stack for a
008DE0:  62 6F 72 74 0D 0A 2E 63 72 6F 75 6C 70 09 63 61    bort...croulp.ca
008DF0:  6C 6C 20 72 65 61 64 74 72 3A 20 63 61 6C 6C 20    ll readtr: call 
008E00:  72 65 73 74 70 63 09 09 3B 52 65 61 64 20 74 72    restpc..;Read tr
008E10:  61 63 6B 0D 0A 2E 63 72 69 6E 6C 70 09 6C 64 20    ack...crinlp.ld 
008E20:  64 65 2C 26 32 37 46 43 3A 20 63 61 6C 6C 20 63    de,&27FC: call c
008E30:  70 69 79 64 65 3A 20 6A 72 20 6E 63 2C 77 72 62    piyde: jr nc,wrb
008E40:  79 74 65 09 3B 49 66 20 70 61 73 74 20 52 4C 45    yte.;If past RLE
008E50:  20 73 74 61 67 65 2C 20 77 72 69 74 65 20 31 20     stage, write 1 
008E60:  62 79 74 65 0D 0A 09 6C 64 20 61 2C 28 69 79 29    byte...ld a,(iy)
008E70:  20 20 3A 20 63 70 20 28 69 79 2B 31 29 09 3A 20      : cp (iy+1).: 
008E80:  6A 72 20 6E 7A 2C 77 72 62 79 74 65 09 3B 49 73    jr nz,wrbyte.;Is
008E90:  20 52 4C 45 20 61 70 70 6C 69 63 61 62 6C 65 3F     RLE applicable?
008EA0:  0D 0A 09 09 20 20 20 20 20 63 70 20 28 69 79 2B    ....     cp (iy+
008EB0:  32 29 09 3A 20 6A 72 20 6E 7A 2C 77 72 62 79 74    2).: jr nz,wrbyt
008EC0:  65 09 3B 20 7C 0D 0A 09 09 20 20 20 20 20 63 70    e.; |....     cp
008ED0:  20 28 69 79 2B 33 29 09 3A 20 6A 72 20 6E 7A 2C     (iy+3).: jr nz,
008EE0:  77 72 62 79 74 65 09 3B 20 7C 0D 0A 09 70 75 73    wrbyte.; |...pus
008EF0:  68 20 61 66 3A 20 6C 64 20 61 2C 26 45 39 3A 20    h af: ld a,&E9: 
008F00:  29 2C 22 3F 22 09 3B 45 78 70 61 6E 64 20 2A 0D    ),"?".;Expand *.
008F10:  0A 09 69 6E 63 20 69 79 3A 20 69 6E 63 20 62 3A    ..inc iy: inc b:
008F20:  20 6A 72 20 64 6F 5F 66 6C 32 09 09 3B 20 7C 0D     jr do_fl2..; |.
008F30:  0A 0D 0A 09 3B 2D 2D 2D 20 72 6F 75 74 09 46 69    ....;--- rout.Fi
008F40:  6E 64 20 6E 65 78 74 20 69 66 20 65 6E 61 62 6C    nd next if enabl
008F50:  65 64 20 28 66 6F 72 20 6B 65 79 62 6F 61 72 64    ed (for keyboard
008F60:  29 0D 0A 0D 0A 2E 6E 65 78 74 09 6C 64 20 61 2C    ).....next.ld a,
008F70:  28 69 73 65 61 72 63 29 3A 20 6F 72 20 61 3A 20    (isearc): or a: 
008F80:  6A 70 20 6E 7A 2C 6D 6F 75 73 65 0D 0A 09 6C 64    jp nz,mouse...ld
008F90:  20 68 6C 2C 63 75 72 72 65 63 3A 20 69 6E 63 20     hl,currec: inc 
008FA0:  28 68 6C 29 3A 20 6A 70 20 66 64 6C 6F 6F 70 0D    (hl): jp fdloop.
008FB0:  0A 0D 0A 0D 0A 09 3B 2A 2A 2A 20 4D 45 4E 55 09    ......;*** MENU.
008FC0:  41 72 63 68 69 76 65 20 6D 65 6E 75 0D 0A 0D 0A    Archive menu....
008FD0:  2E 61 72 63 68 69 76 09 6C 64 20 68 6C 2C 6D 61    .archiv.ld hl,ma
008FE0:  72 63 68 76 3A 20 6C 64 20 64 65 2C 69 61 72 63    rchv: ld de,iarc
008FF0:  68 76 0D 0A 09 63 61 6C 6C 20 26 39 32 37 45 3A    hv...call &927E:
009000:  20 6A 70 20 63 2C 73 65 6C 65 63 74 3A 20 63 70     jp c,select: cp
009010:  20 26 46 46 3A 20 6A 70 20 7A 2C 6D 6F 75 73 65     &FF: jp z,mouse
009020:  0D 0A 09 63 70 20 31 3A 20 6A 70 20 7A 2C 63 72    ...cp 1: jp z,cr
009030:  65 61 74 65 0D 0A 09 63 70 20 32 3A 20 6A 70 20    eate...cp 2: jp 
009040:  7A 2C 75 70 64 61 72 63 0D 0A 09 63 70 20 33 3A    z,updarc...cp 3:
009050:  20 6A 70 20 7A 2C 64 65 6C 65 74 65 0D 0A 09 63     jp z,delete...c
009060:  70 20 35 3A 20 6A 70 20 7A 2C 72 65 73 74 6F 72    p 5: jp z,restor
009070:  0D 0A 09 6A 70 20 61 72 63 68 69 76 0D 0A 0D 0A    ...jp archiv....
009080:  0D 0A 09 3B 2B 2B 2B 20 52 4F 55 54 09 43 72 65    ...;+++ ROUT.Cre
009090:  61 74 65 20 61 72 63 68 69 76 65 0D 0A 0D 0A 2E    ate archive.....
0090A0:  63 72 65 61 74 65 09 6C 64 20 64 65 2C 37 39 3A    create.ld de,79:
0090B0:  20 63 61 6C 6C 20 26 39 32 37 38 09 09 09 3B 49     call &9278...;I
0090C0:  6E 70 75 74 20 72 65 73 74 72 69 63 74 69 6F 6E    nput restriction
0090D0:  73 0D 0A 09 6C 64 20 61 20 2C 31 20 3A 20 63 61    s...ld a ,1 : ca
0090E0:  6C 6C 20 26 39 32 37 42 09 09 09 3B 55 70 70 65    ll &927B...;Uppe
0090F0:  72 20 63 61 73 65 0D 0A 09 63 61 6C 6C 20 26 39    r case...call &9
009100:  63 61 6C 6C 20 77 72 69 74 63 6D 3A 20 70 6F 70    call writcm: pop
009110:  20 61 66 09 3B 59 65 73 2C 20 73 6F 20 77 72 69     af.;Yes, so wri
009120:  74 65 20 26 45 39 0D 0A 09 6C 64 20 64 65 2C 34    te &E9...ld de,4
009130:  3A 20 61 64 64 20 69 79 2C 64 65 3A 20 6C 64 20    : add iy,de: ld 
009140:  63 2C 34 09 09 3B 53 6F 20 66 61 72 2C 20 6F 6E    c,4..;So far, on
009150:  65 20 6F 63 63 75 72 72 65 6E 63 65 0D 0A 2E 72    e occurrence...r
009160:  6C 65 5F 6C 70 09 6C 64 20 64 65 2C 26 32 38 30    le_lp.ld de,&280
009170:  30 3A 20 63 61 6C 6C 20 63 70 69 79 64 65 3A 20    0: call cpiyde: 
009180:  6A 72 20 7A 20 2C 77 72 74 72 6C 65 09 3B 20 7C    jr z ,wrtrle.; |
009190:  20 77 72 69 74 65 20 69 66 20 65 6E 64 20 6F 66     write if end of
0091A0:  20 74 72 61 63 6B 0D 0A 09 09 09 20 63 70 20 28     track..... cp (
0091B0:  69 79 29 3A 20 6A 72 20 6E 7A 2C 77 72 74 72 6C    iy): jr nz,wrtrl
0091C0:  65 09 3B 20 7C 20 77 72 69 74 65 20 69 66 20 62    e.; | write if b
0091D0:  79 74 65 20 64 69 66 66 65 72 65 6E 74 0D 0A 09    yte different...
0091E0:  69 6E 63 20 63 3A 20 69 6E 63 20 69 79 3A 20 6A    inc c: inc iy: j
0091F0:  72 20 6E 7A 2C 72 6C 65 5F 6C 70 09 09 3B 20 7C    r nz,rle_lp..; |
009200:  20 65 6C 73 65 20 63 61 72 72 79 20 6F 6E 20 63     else carry on c
009210:  68 65 63 6B 69 6E 27 21 0D 0A 2E 77 72 74 72 6C    heckin'!...wrtrl
009220:  65 09 70 75 73 68 20 61 66 3A 20 6C 64 20 61 2C    e.push af: ld a,
009230:  63 3A 20 63 61 6C 6C 20 77 72 69 74 63 6D 09 09    c: call writcm..
009240:  3B 57 72 69 74 65 20 74 68 65 20 6C 65 6E 67 74    ;Write the lengt
009250:  68 0D 0A 09 70 6F 70 20 20 61 66 3A 09 20 63 61    h...pop  af:. ca
009260:  6C 6C 20 77 72 69 74 63 6D 09 09 3B 57 72 69 74    ll writcm..;Writ
009270:  65 20 74 68 65 20 62 79 74 65 21 0D 0A 09 6A 72    e the byte!...jr
009280:  20 63 72 69 6E 63 74 09 09 09 09 3B 41 6E 64 20     crinct....;And 
009290:  72 65 2D 65 6E 74 65 72 20 6D 61 69 6E 20 6C 6F    re-enter main lo
0092A0:  6F 70 2E 0D 0A 0D 0A 2E 77 72 62 79 74 65 09 6C    op......wrbyte.l
0092B0:  64 20 61 2C 28 69 79 29 3A 20 63 61 6C 6C 20 20    d a,(iy): call  
0092C0:  77 72 69 74 63 6D 3A 20 69 6E 63 20 69 79 09 09    writcm: inc iy..
0092D0:  3B 57 72 69 74 65 20 62 79 74 65 0D 0A 09 63 70    ;Write byte...cp
0092E0:  20 26 45 39 09 20 3A 20 6A 72 20 6E 7A 2C 63 72     &E9. : jr nz,cr
0092F0:  69 6E 63 74 09 09 09 3B 20 7C 20 69 73 20 69 74    inct...; | is it
009300:  32 38 41 09 09 09 09 3B 43 68 65 63 6B 4F 6E 0D    28A....;CheckOn.
009310:  0A 09 63 61 6C 6C 20 26 39 32 38 31 09 09 09 09    ..call &9281....
009320:  3B 43 6C 65 61 72 20 69 6E 70 75 74 0D 0A 09 63    ;Clear input...c
009330:  61 6C 6C 20 70 64 72 69 76 65 09 09 09 09 3B 50    all pdrive....;P
009340:  72 65 73 65 72 76 65 20 64 69 73 63 20 64 72 69    reserve disc dri
009350:  76 65 0D 0A 0D 0A 09 63 61 6C 6C 20 73 74 61 74    ve.....call stat
009360:  73 3A 20 70 75 73 68 20 68 6C 3A 20 70 6F 70 20    s: push hl: pop 
009370:  69 78 0D 0A 09 6C 64 20 61 2C 28 69 78 2B 33 36    ix...ld a,(ix+36
009380:  29 3A 20 6F 72 20 61 3A 20 6A 70 20 6E 7A 2C 61    ): or a: jp nz,a
009390:  6C 72 65 64 79 09 3B 41 6C 72 65 61 64 79 20 61    lredy.;Already a
0093A0:  72 63 68 69 76 65 64 3F 0D 0A 09 6C 64 20 61 2C    rchived?...ld a,
0093B0:  28 69 78 2B 33 35 29 3A 20 63 70 20 33 3A 20 6A    (ix+35): cp 3: j
0093C0:  70 20 6E 63 2C 77 72 6F 6E 67 66 09 3B 57 72 6F    p nc,wrongf.;Wro
0093D0:  6E 67 20 66 6F 72 6D 61 74 3F 0D 0A 0D 0A 09 6C    ng format?.....l
0093E0:  64 20 68 2C 32 32 3A 20 6C 64 20 6C 20 2C 38 30    d h,22: ld l ,80
0093F0:  09 09 09 3B 57 68 69 63 68 20 61 72 63 68 69 76    ...;Which archiv
009400:  65 20 64 69 73 63 3F 0D 0A 09 6C 64 20 64 2C 33    e disc?...ld d,3
009410:  36 3A 20 6C 64 20 65 20 2C 34 30 3A 20 63 61 6C    6: ld e ,40: cal
009420:  6C 20 26 39 32 33 46 09 09 3B 20 7C 0D 0A 09 6C    l &923F..; |...l
009430:  64 20 68 6C 2C 63 72 65 61 74 78 3A 20 63 61 6C    d hl,creatx: cal
009440:  6C 20 26 39 32 30 33 09 09 3B 20 7C 0D 0A 09 6C    l &9203..; |...l
009450:  64 20 68 2C 35 33 3A 20 6C 64 20 6C 20 2C 39 36    d h,53: ld l ,96
009460:  3A 20 6C 64 20 61 2C 32 3A 20 6F 72 20 61 09 09    : ld a,2: or a..
009470:  3B 20 7C 0D 0A 09 6C 64 20 62 63 2C 31 3A 20 6C    ; |...ld bc,1: l
009480:  64 20 64 65 2C 39 39 3A 20 70 75 73 68 20 69 78    d de,99: push ix
009490:  3A 20 63 61 6C 6C 20 26 39 32 36 46 09 3B 20 7C    : call &926F.; |
0094A0:  0D 0A 09 70 6F 70 20 69 78 20 3A 20 6A 70 20 63    ...pop ix : jp c
0094B0:  2C 63 72 65 61 65 72 3A 20 6C 64 20 28 69 78 2B    ,creaer: ld (ix+
0094C0:  33 36 29 2C 6C 09 3B 20 7C 20 71 75 69 74 20 69    36),l.; | quit i
0094D0:  66 20 45 53 43 20 70 72 65 73 73 65 64 0D 0A 0D    f ESC pressed...
0094E0:  0A 09 6C 64 20 68 6C 2C 63 72 65 32 74 78 3A 20    ..ld hl,cre2tx: 
0094F0:  63 61 6C 6C 20 26 39 32 30 33 09 09 3B 55 6E 64    call &9203..;Und
009500:  20 26 45 39 3F 0D 0A 09 6C 64 20 61 2C 31 09 20     &E9?...ld a,1. 
009510:  3A 20 63 61 6C 6C 20 20 77 72 69 74 63 6D 09 09    : call  writcm..
009520:  09 3B 20 7C 20 20 7C 20 69 66 20 73 6F 2C 20 26    .; |  | if so, &
009530:  45 39 20 26 30 31 0D 0A 2E 63 72 69 6E 63 74 09    E9 &01...crinct.
009540:  6C 64 20 64 65 2C 26 32 38 30 30 3A 20 63 61 6C    ld de,&2800: cal
009550:  6C 20 63 70 69 79 64 65 3A 20 6A 70 20 6E 7A 2C    l cpiyde: jp nz,
009560:  63 72 69 6E 6C 70 09 3B 4C 6F 6F 70 20 69 66 20    crinlp.;Loop if 
009570:  6E 6F 74 20 65 6E 64 20 6F 66 20 74 72 61 63 6B    not end of track
009580:  0D 0A 0D 0A 09 6C 64 20 61 2C 36 36 3A 20 63 61    .....ld a,66: ca
009590:  6C 6C 20 26 42 42 31 45 3A 20 6A 70 20 6E 7A 2C    ll &BB1E: jp nz,
0095A0:  63 72 65 61 65 72 09 3B 51 75 69 74 20 69 66 20    creaer.;Quit if 
0095B0:  45 53 43 20 68 65 6C 64 0D 0A 09 69 6E 63 20 62    ESC held...inc b
0095C0:  09 09 09 09 09 3B 4E 65 78 74 20 74 72 61 63 6B    .....;Next track
0095D0:  0D 0A 09 6C 64 20 61 2C 62 3A 20 63 70 20 34 30    ...ld a,b: cp 40
0095E0:  3A 20 6A 70 20 6E 7A 2C 63 72 6F 75 6C 70 09 09    : jp nz,croulp..
0095F0:  3B 20 7C 0D 0A 0D 0A 09 6C 64 20 61 2C 26 45 39    ; |.....ld a,&E9
009600:  3A 20 63 61 6C 6C 20 77 72 69 74 63 6D 09 09 09    : call writcm...
009610:  3B 57 72 69 74 65 20 65 6E 64 20 62 79 74 65 73    ;Write end bytes
009620:  0D 0A 09 6C 64 20 61 2C 26 30 33 3A 20 63 61 6C    ...ld a,&03: cal
009630:  6C 20 77 72 69 74 63 6D 09 09 09 3B 20 7C 0D 0A    l writcm...; |..
009640:  09 63 61 6C 6C 20 65 6D 70 74 63 6D 09 09 09 09    .call emptcm....
009650:  3B 45 6D 70 74 79 20 62 75 66 66 65 72 0D 0A 09    ;Empty buffer...
009660:  63 61 6C 6C 20 26 42 43 38 46 09 09 09 09 3B 2E    call &BC8F....;.
009670:  2E 2E 61 6E 64 20 63 6C 6F 73 65 20 6F 75 74 70    ..and close outp
009680:  75 74 20 66 69 6C 65 0D 0A 09 6A 70 20 63 72 65    ut file...jp cre
009690:  61 71 74 09 09 09 09 3B 2E 2E 2E 61 6E 64 20 71    aqt....;...and q
0096A0:  75 69 74 20 74 68 69 73 20 6D 6F 64 65 0D 0A 0D    uit this mode...
0096B0:  0A 09 3B 2D 2D 2D 20 73 75 62 72 09 52 65 61 64    ..;--- subr.Read
0096C0:  20 74 72 61 63 6B 20 42 20 69 6E 74 6F 20 62 75     track B into bu
0096D0:  66 66 65 72 0D 0A 0D 0A 2E 72 65 61 64 74 72 09    ffer.....readtr.
0096E0:  6C 64 20 64 2C 62 3A 20 6C 64 20 65 2C 30 3A 20    ld d,b: ld e,0: 
0096F0:  6C 64 20 68 6C 2C 26 31 36 30 30 09 09 3B 54 72    ld hl,&1600..;Tr
009700:  65 72 20 77 68 61 74 20 66 69 6C 65 6E 61 6D 65    er what filename
009710:  3F 0D 0A 09 70 75 73 68 20 69 78 3A 20 70 6F 70    ?...push ix: pop
009720:  20 68 6C 3A 20 6C 64 20 64 65 2C 33 37 3A 20 61     hl: ld de,37: a
009730:  64 64 20 68 6C 2C 64 65 09 3B 20 7C 0D 0A 09 6C    dd hl,de.; |...l
009740:  64 20 64 2C 34 30 3A 20 6C 64 20 65 2C 31 30 34    d d,40: ld e,104
009750:  09 09 09 3B 20 7C 0D 0A 09 6C 64 20 63 2C 38 20    ...; |...ld c,8 
009760:  3A 20 6F 72 20 61 3A 20 70 75 73 68 20 69 78 3A    : or a: push ix:
009770:  20 63 61 6C 6C 20 26 39 32 37 32 09 3B 20 7C 0D     call &9272.; |.
009780:  0A 09 70 6F 70 20 69 78 20 3A 20 6A 70 20 63 2C    ..pop ix : jp c,
009790:  63 72 65 61 65 72 09 09 09 3B 20 7C 0D 0A 09 6C    creaer...; |...l
0097A0:  64 20 62 2C 30 20 3A 20 61 64 64 20 68 6C 2C 62    d b,0 : add hl,b
0097B0:  63 09 09 09 3B 20 7C 20 66 69 6C 6C 20 77 69 74    c...; | fill wit
0097C0:  68 20 73 70 61 63 65 73 0D 0A 2E 63 72 73 5F 6C    h spaces...crs_l
0097D0:  70 09 62 69 74 20 33 2C 63 3A 20 6A 72 20 6E 7A    p.bit 3,c: jr nz
0097E0:  2C 63 72 73 64 6E 65 09 09 09 3B 20 7C 20 20 7C    ,crsdne...; |  |
0097F0:  0D 0A 09 6C 64 20 28 68 6C 29 2C 22 20 22 3A 20    ...ld (hl)," ": 
009800:  69 6E 63 20 68 6C 3A 20 69 6E 63 20 63 3A 20 6A    inc hl: inc c: j
009810:  72 20 63 72 73 5F 6C 70 09 3B 20 7C 20 20 7C 0D    r crs_lp.; |  |.
009820:  0A 2E 63 72 73 64 6E 65 09 6C 64 20 28 68 6C 29    ..crsdne.ld (hl)
009830:  2C 22 2E 22 3A 20 69 6E 63 20 68 6C 09 09 09 3B    ,".": inc hl...;
009840:  20 7C 20 61 64 64 20 66 69 6C 65 20 65 78 74 65     | add file exte
009850:  6E 73 69 6F 6E 0D 0A 09 6C 64 20 28 68 6C 29 2C    nsion...ld (hl),
009860:  22 49 22 3A 20 69 6E 63 20 68 6C 09 09 09 3B 20    "I": inc hl...; 
009870:  7C 20 20 7C 0D 0A 09 6C 64 20 28 68 6C 29 2C 22    |  |...ld (hl),"
009880:  4D 22 3A 20 69 6E 63 20 68 6C 09 09 09 3B 20 7C    M": inc hl...; |
009890:  20 20 7C 0D 0A 09 6C 64 20 28 68 6C 29 2C 22 47      |...ld (hl),"G
0098A0:  22 09 09 09 09 3B 20 7C 20 20 7C 0D 0A 0D 0A 09    "....; |  |.....
0098B0:  6C 64 20 61 2C 28 69 78 2B 33 36 29 3A 20 70 75    ld a,(ix+36): pu
0098C0:  73 68 20 69 78 3A 20 63 61 6C 6C 20 69 6E 73 64    sh ix: call insd
0098D0:  73 63 09 3B 49 6E 73 65 72 74 20 63 6F 72 72 65    sc.;Insert corre
0098E0:  63 74 20 64 69 73 63 2C 20 70 6C 65 61 73 65 0D    ct disc, please.
0098F0:  0A 09 70 6F 70 20 69 78 3A 20 6A 70 20 63 2C 63    ..pop ix: jp c,c
009900:  54 72 61 63 6B 2D 49 6E 66 6F 0D 0A 00 00 00 00    Track-Info......
009910:  08 00 01 00 02 09 4E E5 08 00 C3 02 00 00 00 02    ......N.........
009920:  08 00 C8 02 00 00 00 02 08 00 C4 02 00 00 00 02    ................
009930:  08 00 C9 02 00 00 00 02 08 00 C5 02 00 00 00 02    ................
009940:  08 00 C1 02 00 00 00 02 08 00 C6 02 00 00 00 02    ................
009950:  08 00 C2 02 00 00 00 02 08 00 C7 02 00 00 00 02    ................
009960:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
009970:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
009980:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
009990:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
0099A0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
0099B0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
0099C0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
0099D0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
0099E0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
0099F0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
009A00:  72 65 6E 74 20 64 72 69 76 65 0D 0A 09 6A 70 20    rent drive...jp 
009A10:  6B 65 79 73 0D 0A 0D 0A 0D 0A 09 3B 2D 2D 2D 20    keys.......;--- 
009A20:  73 75 62 72 09 52 65 71 75 65 73 74 20 64 69 73    subr.Request dis
009A30:  63 20 41 0D 0A 09 3B 09 09 43 20 69 66 20 63 61    c A...;..C if ca
009A40:  6E 63 65 6C 6C 65 64 2C 20 4E 43 20 69 66 20 6F    ncelled, NC if o
009A50:  6B 0D 0A 0D 0A 2E 69 6E 73 64 73 63 09 6C 64 20    k.....insdsc.ld 
009A60:  68 6C 2C 69 6E 73 74 78 74 3A 20 6C 64 20 61 2C    hl,instxt: ld a,
009A70:  31 32 09 09 09 3B 50 6C 65 61 73 65 20 69 6E 73    12...;Please ins
009A80:  65 72 74 20 64 69 73 63 0D 0A 09 6C 64 20 62 63    ert disc...ld bc
009A90:  2C 6F 6B 62 75 74 20 3A 20 6C 64 20 64 65 2C 63    ,okbut : ld de,c
009AA0:  61 6E 62 75 74 09 09 3B 20 7C 0D 0A 09 63 61 6C    anbut..; |...cal
009AB0:  6C 20 26 39 32 34 38 20 20 3A 20 72 65 74 20 63    l &9248  : ret c
009AC0:  09 09 09 3B 20 7C 0D 0A 0D 0A 09 6C 64 20 65 2C    ...; |.....ld e,
009AD0:  31 3A 20 63 61 6C 6C 20 26 39 32 41 35 09 09 09    1: call &92A5...
009AE0:  3B 44 72 69 76 65 20 42 0D 0A 09 63 61 6C 6C 20    ;Drive B...call 
009AF0:  26 39 32 38 44 3A 20 6F 72 20 61 09 09 09 3B 43    &928D: or a...;C
009B00:  68 65 63 6B 4F 66 66 0D 0A 09 63 61 6C 6C 20 26    heckOff...call &
009B10:  39 32 39 39 3A 20 70 75 73 68 20 61 66 09 09 09    9299: push af...
009B20:  3B 53 63 61 6E 46 6F 72 6D 61 74 0D 0A 09 63 61    ;ScanFormat...ca
009B30:  6C 6C 20 26 39 32 38 41 3A 20 70 6F 70 20 61 66    ll &928A: pop af
009B40:  09 09 09 3B 43 68 65 63 6B 4F 6E 0D 0A 09 63 70    ...;CheckOn...cp
009B50:  20 33 3A 20 6A 72 20 7A 2C 74 72 79 5F 61 3A 20     3: jr z,try_a: 
009B60:  63 70 20 34 3A 20 6A 72 20 7A 2C 74 72 79 5F 61    cp 4: jr z,try_a
009B70:  09 3B 4F 6B 20 69 66 20 44 31 2C 20 44 31 30 2C    .;Ok if D1, D10,
009B80:  20 44 32 2C 20 44 32 30 0D 0A 09 63 70 20 35 3A     D2, D20...cp 5:
009B90:  20 6A 72 20 7A 2C 74 72 79 5F 61 3A 20 63 70 20     jr z,try_a: cp 
009BA0:  36 3A 20 6A 72 20 7A 2C 74 72 79 5F 61 09 3B 20    6: jr z,try_a.; 
009BB0:  7C 0D 0A 09 63 61 6C 6C 20 26 39 32 44 32 3A 20    |...call &92D2: 
009BC0:  6A 72 20 69 6E 73 64 73 63 09 09 09 3B 45 6C 73    jr insdsc...;Els
009BD0:  65 20 74 72 79 20 61 67 61 69 6E 0D 0A 0D 0A 2E    e try again.....
009BE0:  74 72 79 5F 61 09 6C 64 20 65 2C 30 3A 20 63 61    try_a.ld e,0: ca
009BF0:  6C 6C 20 26 39 32 41 35 09 09 09 3B 44 72 69 76    ll &92A5...;Driv
009C00:  6C 3A 20 6A 70 20 6E 63 2C 72 65 73 74 71 74 09    l: jp nc,restqt.
009C10:  09 3B 20 7C 0D 0A 0D 0A 09 63 61 6C 6C 20 26 42    .; |.....call &B
009C20:  43 38 30 3A 20 63 70 20 22 49 22 3A 20 6A 70 20    C80: cp "I": jp 
009C30:  6E 7A 2C 6E 6F 74 69 6D 67 09 3B 43 68 65 63 6B    nz,notimg.;Check
009C40:  20 69 74 27 73 20 61 6E 20 69 6D 61 67 65 20 66     it's an image f
009C50:  69 6C 65 0D 0A 09 63 61 6C 6C 20 26 42 43 38 30    ile...call &BC80
009C60:  3A 20 63 70 20 22 6D 22 3A 20 6A 70 20 6E 7A 2C    : cp "m": jp nz,
009C70:  6E 6F 74 69 6D 67 09 3B 20 7C 0D 0A 09 63 61 6C    notimg.; |...cal
009C80:  6C 20 26 42 43 38 30 3A 20 63 70 20 22 61 22 3A    l &BC80: cp "a":
009C90:  20 6A 70 20 6E 7A 2C 6E 6F 74 69 6D 67 09 3B 20     jp nz,notimg.; 
009CA0:  7C 0D 0A 09 63 61 6C 6C 20 26 42 43 38 30 3A 20    |...call &BC80: 
009CB0:  63 70 20 22 67 22 3A 20 6A 70 20 6E 7A 2C 6E 6F    cp "g": jp nz,no
009CC0:  74 69 6D 67 09 3B 20 7C 0D 0A 09 63 61 6C 6C 20    timg.; |...call 
009CD0:  26 42 43 38 30 3A 20 63 70 20 22 65 22 3A 20 6A    &BC80: cp "e": j
009CE0:  70 20 6E 7A 2C 6E 6F 74 69 6D 67 09 3B 20 7C 0D    p nz,notimg.; |.
009CF0:  0A 09 63 61 6C 6C 20 26 42 43 38 30 3A 20 6F 72    ..call &BC80: or
009D00:  20 61 20 20 3A 20 6A 70 20 6E 7A 2C 6E 6F 74 69     a  : jp nz,noti
009D10:  6D 67 09 3B 20 7C 0D 0A 09 63 61 6C 6C 20 26 42    mg.; |...call &B
009D20:  43 38 30 3A 20 6C 64 20 28 77 72 69 74 74 72 2B    C80: ld (writtr+
009D30:  31 29 2C 61 09 09 3B 20 7C 0D 0A 09 63 61 6C 6C    1),a..; |...call
009D40:  20 26 42 43 37 41 09 09 09 09 3B 43 6C 6F 73 65     &BC7A....;Close
009D50:  20 66 69 6C 65 20 77 68 69 6C 65 20 66 6F 72 6D     file while form
009D60:  61 74 74 69 6E 67 0D 0A 0D 0A 09 6C 64 20 65 2C    atting.....ld e,
009D70:  30 3A 20 63 61 6C 6C 20 26 39 32 41 35 09 09 09    0: call &92A5...
009D80:  3B 44 72 69 76 65 20 41 0D 0A 09 6C 64 20 61 2C    ;Drive A...ld a,
009D90:  28 77 72 69 74 74 72 2B 31 29 09 09 09 09 3B 46    (writtr+1)....;F
009DA0:  6F 72 6D 61 74 0D 0A 09 6C 64 20 64 2C 31 3A 20    ormat...ld d,1: 
009DB0:  63 70 20 26 43 31 3A 20 6A 72 20 7A 2C 64 6F 66    cp &C1: jr z,dof
009DC0:  6F 72 6D 3A 20 6C 64 20 64 2C 32 09 3B 20 7C 0D    orm: ld d,2.; |.
009DD0:  0A 2E 64 6F 66 6F 72 6D 09 6C 64 20 61 2C 64 3A    ..doform.ld a,d:
009DE0:  20 6C 64 20 68 6C 2C 30 3A 20 63 61 6C 6C 20 26     ld hl,0: call &
009DF0:  39 32 38 37 09 09 3B 20 7C 0D 0A 0D 0A 09 6C 64    9287..; |.....ld
009E00:  65 20 41 0D 0A 09 63 61 6C 6C 20 26 39 32 38 44    e A...call &928D
009E10:  3A 20 6F 72 20 61 09 09 09 3B 43 68 65 63 6B 4F    : or a...;CheckO
009E20:  66 66 0D 0A 09 63 61 6C 6C 20 26 39 32 39 39 3A    ff...call &9299:
009E30:  20 70 75 73 68 20 61 66 09 09 09 3B 53 63 61 6E     push af...;Scan
009E40:  46 6F 72 6D 61 74 0D 0A 09 63 61 6C 6C 20 26 39    Format...call &9
009E50:  32 38 41 3A 20 70 6F 70 20 61 66 09 09 09 3B 43    28A: pop af...;C
009E60:  68 65 63 6B 4F 6E 0D 0A 09 63 70 20 31 3A 20 6A    heckOn...cp 1: j
009E70:  72 20 7A 2C 74 72 79 5F 64 74 3A 20 63 70 20 32    r z,try_dt: cp 2
009E80:  3A 20 6A 72 20 7A 2C 74 72 79 5F 63 70 09 3B 4F    : jr z,try_cp.;O
009E90:  6B 20 69 66 20 44 61 74 61 20 6F 72 20 43 50 2F    k if Data or CP/
009EA0:  4D 0D 0A 09 63 61 6C 6C 20 26 39 32 44 32 3A 20    M...call &92D2: 
009EB0:  6A 70 20 69 6E 73 64 73 63 09 09 09 3B 45 6C 73    jp insdsc...;Els
009EC0:  65 20 74 72 79 20 61 67 61 69 6E 0D 0A 0D 0A 2E    e try again.....
009ED0:  74 72 79 5F 64 74 09 6C 64 20 28 69 78 2B 33 35    try_dt.ld (ix+35
009EE0:  29 2C 61 3A 20 6C 64 20 61 2C 26 43 31 3A 20 6C    ),a: ld a,&C1: l
009EF0:  64 20 28 72 65 61 64 74 70 2B 31 29 2C 61 3A 20    d (readtp+1),a: 
009F00:  72 65 74 0D 0A 2E 74 72 79 5F 63 70 09 6C 64 20    ret...try_cp.ld 
009F10:  28 69 78 2B 33 35 29 2C 61 3A 20 6C 64 20 61 2C    (ix+35),a: ld a,
009F20:  26 34 31 3A 20 6C 64 20 28 72 65 61 64 74 70 2B    &41: ld (readtp+
009F30:  31 29 2C 61 3A 20 72 65 74 0D 0A 0D 0A 09 3B 2D    1),a: ret.....;-
009F40:  2D 2D 20 73 75 62 72 09 50 72 65 73 65 72 76 65    -- subr.Preserve
009F50:  20 63 75 72 72 65 6E 74 20 64 69 73 63 20 64 72     current disc dr
009F60:  69 76 65 0D 0A 0D 0A 2E 70 64 72 69 76 65 09 63    ive.....pdrive.c
009F70:  61 6C 6C 20 26 39 32 39 46 3A 20 6C 64 20 61 2C    all &929F: ld a,
009F80:  65 3A 20 6C 64 20 28 72 64 72 69 76 65 2B 31 29    e: ld (rdrive+1)
009F90:  2C 61 3A 20 72 65 74 0D 0A 0D 0A 09 3B 2D 2D 2D    ,a: ret.....;---
009FA0:  20 73 75 62 72 09 52 65 73 74 6F 72 65 20 63 75     subr.Restore cu
009FB0:  72 72 65 6E 74 20 64 69 73 63 20 64 72 69 76 65    rrent disc drive
009FC0:  0D 0A 0D 0A 2E 72 64 72 69 76 65 09 6C 64 20 65    .....rdrive.ld e
009FD0:  2C 30 3A 20 6A 70 20 26 39 32 41 35 0D 0A 0D 0A    ,0: jp &92A5....
009FE0:  0D 0A 0D 0A 09 3B 2B 2B 2B 20 52 4F 55 54 09 55    .....;+++ ROUT.U
009FF0:  70 64 61 74 65 20 61 72 63 68 69 76 65 0D 0A 0D    pdate archive...
00A000:  20 65 2C 31 3A 20 63 61 6C 6C 20 26 39 32 41 35     e,1: call &92A5
00A010:  3A 20 6A 70 20 6E 63 2C 72 65 73 74 71 74 09 3B    : jp nc,restqt.;
00A020:  44 72 69 76 65 20 42 0D 0A 09 6C 64 20 68 2C 32    Drive B...ld h,2
00A030:  33 3A 20 6C 64 20 6C 2C 33 37 3A 20 63 61 6C 6C    3: ld l,37: call
00A040:  20 26 39 32 32 34 09 09 3B 50 72 69 6E 74 20 22     &9224..;Print "
00A050:  72 65 73 74 6F 72 69 6E 67 22 0D 0A 09 6C 64 20    restoring"...ld 
00A060:  68 6C 2C 72 65 73 74 74 78 3A 20 63 61 6C 6C 20    hl,resttx: call 
00A070:  26 39 32 30 33 09 09 3B 20 7C 0D 0A 0D 0A 09 63    &9203..; |.....c
00A080:  61 6C 6C 20 73 74 61 74 73 3A 20 6C 64 20 64 65    all stats: ld de
00A090:  2C 33 37 3A 20 61 64 64 20 68 6C 2C 64 65 09 09    ,37: add hl,de..
00A0A0:  3B 4F 70 65 6E 20 66 69 6C 65 20 61 67 61 69 6E    ;Open file again
00A0B0:  0D 0A 09 6C 64 20 62 2C 31 32 3A 20 6C 64 20 64    ...ld b,12: ld d
00A0C0:  65 2C 26 43 30 30 30 3A 20 63 61 6C 6C 20 26 42    e,&C000: call &B
00A0D0:  43 37 37 09 3B 20 7C 0D 0A 09 6A 70 20 6E 63 2C    C77.; |...jp nc,
00A0E0:  72 65 73 74 71 74 3A 20 63 61 6C 6C 20 69 6E 69    restqt: call ini
00A0F0:  74 63 6D 09 09 3B 20 7C 0D 0A 09 63 61 6C 6C 20    tcm..; |...call 
00A100:  72 65 61 64 32 6B 3A 20 6C 64 20 62 2C 33 39 09    read2k: ld b,39.
00A110:  09 09 3B 20 7C 0D 0A 2E 73 77 61 6C 6C 6F 09 63    ..; |...swallo.c
00A120:  61 6C 6C 20 72 65 61 64 63 6D 3A 20 64 6A 6E 7A    all readcm: djnz
00A130:  20 73 77 61 6C 6C 6F 09 09 3B 20 7C 0D 0A 0D 0A     swallo..; |....
00A140:  09 6C 64 20 62 2C 30 09 09 09 09 09 3B 54 72 61    .ld b,0.....;Tra
00A150:  63 6B 20 30 0D 0A 2E 72 73 6F 75 6C 70 09 6C 64    ck 0...rsoulp.ld
00A160:  20 69 79 2C 26 31 36 30 30 3A 20 63 61 6C 6C 20     iy,&1600: call 
00A170:  72 65 73 74 70 63 09 09 3B 53 74 61 72 74 20 6F    restpc..;Start o
00A180:  66 20 73 65 63 74 6F 72 20 62 75 66 66 65 72 0D    f sector buffer.
00A190:  0A 2E 72 73 69 6E 6C 70 09 63 61 6C 6C 20 72 65    ..rsinlp.call re
00A1A0:  61 64 63 6D 3A 20 63 70 20 26 45 39 3A 20 6A 72    adcm: cp &E9: jr
00A1B0:  20 6E 7A 2C 73 69 6D 70 6C 65 09 3B 49 73 20 69     nz,simple.;Is i
00A1C0:  74 20 26 45 39 3F 0D 0A 09 63 61 6C 6C 20 72 65    t &E9?...call re
00A1D0:  61 64 63 6D 3A 20 63 70 20 31 20 20 3A 20 6A 72    adcm: cp 1  : jr
00A1E0:  20 7A 20 2C 73 69 6D 70 65 39 09 3B 20 7C 20 73     z ,simpe9.; | s
00A1F0:  69 6D 70 6C 65 20 26 45 39 20 62 79 74 65 3F 0D    imple &E9 byte?.
00A200:  0A 2E 75 70 64 61 72 63 09 6C 64 20 61 2C 26 43    ..updarc.ld a,&C
00A210:  39 3A 20 6C 64 20 28 64 65 6C 5F 71 74 29 2C 61    9: ld (del_qt),a
00A220:  0D 0A 09 63 61 6C 6C 20 64 65 6C 65 6E 74 0D 0A    ...call delent..
00A230:  09 63 61 6C 6C 20 73 74 61 74 73 3A 20 70 75 73    .call stats: pus
00A240:  68 20 68 6C 3A 20 70 6F 70 20 69 78 0D 0A 09 6A    h hl: pop ix...j
00A250:  70 20 20 20 75 70 64 65 6E 74 0D 0A 0D 0A 0D 0A    p   updent......
00A260:  09 3B 2B 2B 2B 20 52 4F 55 54 09 44 65 6C 65 74    .;+++ ROUT.Delet
00A270:  65 20 61 72 63 68 69 76 65 0D 0A 0D 0A 2E 64 65    e archive.....de
00A280:  6C 65 74 65 09 78 6F 72 20 61 3A 20 6C 64 20 28    lete.xor a: ld (
00A290:  64 65 6C 5F 71 74 29 2C 61 0D 0A 2E 64 65 6C 65    del_qt),a...dele
00A2A0:  6E 74 09 63 61 6C 6C 20 26 39 32 38 41 09 09 09    nt.call &928A...
00A2B0:  09 3B 43 68 65 63 6B 4F 6E 0D 0A 09 63 61 6C 6C    .;CheckOn...call
00A2C0:  20 26 39 32 38 31 09 09 09 09 3B 43 6C 65 61 72     &9281....;Clear
00A2D0:  20 69 6E 70 75 74 0D 0A 09 63 61 6C 6C 20 70 64     input...call pd
00A2E0:  72 69 76 65 09 09 09 09 3B 50 72 65 73 65 72 76    rive....;Preserv
00A2F0:  65 20 64 69 73 63 20 64 72 69 76 65 0D 0A 0D 0A    e disc drive....
00A300:  09 63 61 6C 6C 20 73 74 61 74 73 3A 20 70 75 73    .call stats: pus
00A310:  68 20 68 6C 3A 20 70 6F 70 20 69 78 0D 0A 09 6C    h hl: pop ix...l
00A320:  64 20 61 2C 28 69 78 2B 33 36 29 3A 20 6F 72 20    d a,(ix+36): or 
00A330:  61 3A 20 6A 70 20 7A 2C 63 6E 74 64 65 6C 09 09    a: jp z,cntdel..
00A340:  3B 4E 6F 74 20 61 72 63 68 69 76 65 64 3F 0D 0A    ;Not archived?..
00A350:  09 63 61 6C 6C 20 69 6E 73 64 73 63 20 3A 20 6A    .call insdsc : j
00A360:  70 20 63 2C 64 65 6C 5F 71 74 09 09 3B 49 6E 73    p c,del_qt..;Ins
00A370:  65 72 74 20 64 69 73 63 20 70 6C 65 61 73 65 0D    ert disc please.
00A380:  0A 0D 0A 09 6C 64 20 65 2C 31 3A 20 63 61 6C 6C    ....ld e,1: call
00A390:  20 26 39 32 41 35 09 09 09 3B 44 72 69 76 65 20     &92A5...;Drive 
00A3A0:  42 0D 0A 09 70 75 73 68 20 69 78 3A 20 70 6F 70    B...push ix: pop
00A3B0:  20 68 6C 3A 20 6C 64 20 64 65 2C 33 37 3A 20 61     hl: ld de,37: a
00A3C0:  64 64 20 68 6C 2C 64 65 09 3B 50 72 65 70 61 72    dd hl,de.;Prepar
00A3D0:  65 20 70 61 72 61 6D 65 74 65 72 20 62 6C 6F 63    e parameter bloc
00A3E0:  6B 0D 0A 09 6C 64 20 28 64 65 6C 73 74 72 2B 31    k...ld (delstr+1
00A3F0:  29 2C 68 6C 3A 20 70 75 73 68 20 69 78 09 09 3B    ),hl: push ix..;
00A400:  4E 65 78 74 20 61 64 64 72 65 73 73 0D 0A 09 20    Next address... 
00A410:  6C 64 20 61 2C 68 3A 20 63 70 20 26 33 30 3A 20    ld a,h: cp &30: 
00A420:  6A 72 20 7A 2C 77 72 69 74 6F 66 09 09 3B 20 7C    jr z,writof..; |
00A430:  20 6F 76 65 72 66 6C 6F 77 73 20 62 75 66 66 65     overflows buffe
00A440:  72 3F 0D 0A 09 70 6F 70 20 68 6C 3A 20 70 6F 70    r?...pop hl: pop
00A450:  20 61 66 3A 20 72 65 74 09 09 09 3B 20 7C 20 20     af: ret...; |  
00A460:  7C 20 6E 6F 2C 20 73 6F 20 72 65 74 75 72 6E 0D    | no, so return.
00A470:  0A 0D 0A 2E 77 72 69 74 6F 66 09 20 63 61 6C 6C    ....writof. call
00A480:  20 65 6D 70 74 63 6D 3A 20 6A 72 20 6E 63 2C 65     emptcm: jr nc,e
00A490:  6D 70 74 65 72 09 09 3B 45 6D 70 74 79 20 62 75    mpter..;Empty bu
00A4A0:  66 66 65 72 0D 0A 09 20 63 61 6C 6C 20 69 6E 69    ffer... call ini
00A4B0:  74 63 6D 09 09 09 09 3B 52 65 73 74 61 72 74 20    tcm....;Restart 
00A4C0:  69 74 0D 0A 09 70 6F 70 20 68 6C 3A 20 70 6F 70    it...pop hl: pop
00A4D0:  20 61 66 3A 20 72 65 74 09 09 09 3B 2E 2E 2E 61     af: ret...;...a
00A4E0:  6E 64 20 72 65 74 75 72 6E 0D 0A 2E 65 6D 70 74    nd return...empt
00A4F0:  65 72 09 6C 64 20 73 70 2C 28 73 74 61 63 6B 73    er.ld sp,(stacks
00A500:  29 3A 20 6A 70 20 63 72 65 61 65 72 09 09 3B 4F    ): jp creaer..;O
00A510:  6E 20 65 72 72 6F 72 2C 20 63 6C 65 61 72 20 73    n error, clear s
00A520:  74 61 63 6B 2C 20 72 65 74 75 72 6E 0D 0A 0D 0A    tack, return....
00A530:  2E 65 6D 70 74 63 6D 09 70 75 73 68 20 62 63 3A    .emptcm.push bc:
00A540:  20 70 75 73 68 20 64 65 3A 20 70 75 73 68 20 69     push de: push i
00A550:  78 09 09 3B 57 72 69 74 65 20 32 6B 20 75 73 69    x..;Write 2k usi
00A560:  6E 67 20 43 41 53 20 4F 55 54 20 44 49 52 45 43    ng CAS OUT DIREC
00A570:  54 0D 0A 09 20 6C 64 20 68 6C 2C 26 32 38 30 30    T... ld hl,&2800
00A580:  3A 20 6C 64 20 62 63 2C 30 09 09 09 3B 20 7C 0D    : ld bc,0...; |.
00A590:  0A 09 20 6C 64 20 64 65 2C 26 30 38 30 30 3A 20    .. ld de,&0800: 
00A5A0:  6C 64 20 61 20 2C 26 31 36 3A 20 63 61 6C 6C 20    ld a ,&16: call 
00A5B0:  26 42 43 39 38 09 3B 20 7C 0D 0A 09 70 6F 70 20    &BC98.; |...pop 
00A5C0:  69 78 3A 20 70 6F 70 20 64 65 3A 20 70 6F 70 20    ix: pop de: pop 
00A5D0:  62 63 09 09 09 3B 20 7C 0D 0A 09 72 65 74 09 09    bc...; |...ret..
00A5E0:  09 09 09 3B 20 7C 0D 0A 0D 0A 0D 0A 09 3B 2D 2D    ...; |.......;--
00A5F0:  2D 20 73 75 62 72 09 43 6F 6D 70 61 72 65 20 49    - subr.Compare I
00A600:  20 7C 0D 0A 09 6C 64 20 68 6C 2C 64 65 6C 63 6D     |...ld hl,delcm
00A610:  64 3A 20 63 61 6C 6C 20 26 42 43 44 34 3A 20 6C    d: call &BCD4: l
00A620:  64 20 61 2C 31 09 3B 46 69 6E 64 20 63 6F 6D 6D    d a,1.;Find comm
00A630:  61 6E 64 0D 0A 09 6C 64 20 69 78 2C 64 65 6C 70    and...ld ix,delp
00A640:  61 72 3A 20 63 61 6C 6C 20 26 31 42 09 09 09 3B    ar: call &1B...;
00A650:  45 78 65 63 75 74 65 20 69 74 0D 0A 09 70 6F 70    Execute it...pop
00A660:  20 69 78 3A 20 6A 70 20 64 65 6C 5F 71 74 0D 0A     ix: jp del_qt..
00A670:  0D 0A 2E 64 65 6C 63 6D 64 09 73 74 72 20 22 45    ...delcmd.str "E
00A680:  52 41 22 0D 0A 2E 64 65 6C 70 61 72 09 64 77 20    RA"...delpar.dw 
00A690:  64 65 6C 73 74 72 0D 0A 2E 64 65 6C 73 74 72 09    delstr...delstr.
00A6A0:  64 62 20 31 32 0D 0A 09 64 77 20 30 0D 0A 0D 0A    db 12...dw 0....
00A6B0:  09 3B 2D 2D 2D 20 73 65 63 74 09 51 75 69 74 20    .;--- sect.Quit 
00A6C0:  64 65 6C 65 74 69 6E 67 20 69 6D 61 67 65 0D 0A    deleting image..
00A6D0:  0D 0A 2E 63 6E 74 64 65 6C 09 6C 64 20 61 2C 26    ...cntdel.ld a,&
00A6E0:  38 32 3A 20 6C 64 20 68 6C 2C 6E 6F 74 61 74 78    82: ld hl,notatx
00A6F0:  3A 20 63 61 6C 6C 20 26 39 32 34 38 3A 20 6A 70    : call &9248: jp
00A700:  20 64 65 6C 5F 71 74 0D 0A 0D 0A 2E 64 65 6C 5F     del_qt.....del_
00A710:  71 74 09 6E 6F 70 09 09 09 09 09 3B 26 43 39 20    qt.nop.....;&C9 
00A720:  77 68 65 6E 20 63 61 6C 6C 65 64 20 62 79 20 22    when called by "
00A730:  75 70 64 61 74 65 22 0D 0A 09 6C 64 20 28 69 78    update"...ld (ix
00A740:  2B 33 36 29 2C 30 09 09 09 09 3B 52 65 73 65 74    +36),0....;Reset
00A750:  20 61 72 63 68 69 76 65 20 62 79 74 65 0D 0A 09     archive byte...
00A760:  63 61 6C 6C 20 73 74 61 74 73 3A 20 63 61 6C 6C    call stats: call
00A770:  20 63 61 72 64 09 09 09 3B 51 75 69 74 20 64 65     card...;Quit de
00A780:  6C 65 74 65 20 6D 6F 64 65 0D 0A 09 63 61 6C 6C    lete mode...call
00A790:  20 26 39 32 38 44 09 09 09 09 3B 20 7C 20 43 68     &928D....; | Ch
00A7A0:  65 63 6B 4F 66 66 0D 0A 09 78 6F 72 20 61 3A 20    eckOff...xor a: 
00A7B0:  63 61 6C 6C 20 26 39 32 37 42 09 09 09 3B 20 7C    call &927B...; |
00A7C0:  20 6C 6F 77 65 72 20 63 61 73 65 0D 0A 09 63 61     lower case...ca
00A7D0:  6C 6C 20 26 42 43 37 44 3A 20 63 61 6C 6C 20 72    ll &BC7D: call r
00A7E0:  64 72 69 76 65 09 09 09 3B 20 7C 20 61 62 61 6E    drive...; | aban
00A7F0:  64 6F 6E 20 69 6E 70 75 74 2C 20 72 65 73 74 6F    don input, resto
00A800:  59 20 77 69 74 68 20 44 45 0D 0A 0D 0A 2E 63 70    Y with DE.....cp
00A810:  69 79 64 65 09 70 75 73 68 20 68 6C 0D 0A 09 20    iyde.push hl... 
00A820:  6F 72 20 61 3A 20 70 75 73 68 20 69 79 3A 20 70    or a: push iy: p
00A830:  6F 70 20 68 6C 0D 0A 09 20 73 62 63 20 68 6C 2C    op hl... sbc hl,
00A840:  64 65 0D 0A 09 70 6F 70 20 68 6C 3A 20 72 65 74    de...pop hl: ret
00A850:  0D 0A 0D 0A 0D 0A 09 3B 2D 2D 2D 20 73 65 63 74    .......;--- sect
00A860:  09 51 75 69 74 20 63 72 65 61 74 69 6E 67 20 61    .Quit creating a
00A870:  72 63 68 69 76 65 0D 0A 0D 0A 2E 61 6C 72 65 64    rchive.....alred
00A880:  79 09 6C 64 20 61 2C 26 38 32 3A 20 6C 64 20 68    y.ld a,&82: ld h
00A890:  6C 2C 61 6C 72 65 74 78 3A 20 63 61 6C 6C 20 26    l,alretx: call &
00A8A0:  39 32 34 38 3A 20 6A 70 20 63 72 65 61 65 32 0D    9248: jp creae2.
00A8B0:  0A 2E 77 72 6F 6E 67 66 09 6C 64 20 61 2C 26 38    ..wrongf.ld a,&8
00A8C0:  32 3A 20 6C 64 20 68 6C 2C 77 72 6E 67 74 78 3A    2: ld hl,wrngtx:
00A8D0:  20 63 61 6C 6C 20 26 39 32 34 38 3A 20 6A 70 20     call &9248: jp 
00A8E0:  63 72 65 61 65 32 0D 0A 0D 0A 2E 63 72 65 61 65    creae2.....creae
00A8F0:  72 09 63 61 6C 6C 20 73 74 61 74 73 09 09 09 09    r.call stats....
00A900:  3B 43 61 6E 63 65 6C 20 61 72 63 68 69 76 65 20    ;Cancel archive 
00A910:  62 69 74 73 0D 0A 09 70 75 73 68 20 68 6C 3A 20    bits...push hl: 
00A920:  70 6F 70 20 69 78 3A 20 6C 64 20 28 69 78 2B 33    pop ix: ld (ix+3
00A930:  36 29 2C 30 09 09 3B 20 7C 0D 0A 2E 63 72 65 61    6),0..; |...crea
00A940:  65 32 09 63 61 6C 6C 20 26 42 43 39 32 09 09 09    e2.call &BC92...
00A950:  09 3B 20 7C 20 61 62 61 6E 64 6F 6E 20 6F 75 74    .; | abandon out
00A960:  70 75 74 20 66 69 6C 65 0D 0A 0D 0A 2E 63 72 65    put file.....cre
00A970:  61 71 74 09 63 61 6C 6C 20 73 74 61 74 73 3A 20    aqt.call stats: 
00A980:  63 61 6C 6C 20 63 61 72 64 09 09 09 3B 51 75 69    call card...;Qui
00A990:  74 20 63 72 65 61 74 65 20 6D 6F 64 65 0D 0A 09    t create mode...
00A9A0:  63 61 6C 6C 20 26 39 32 38 44 09 09 09 09 3B 20    call &928D....; 
00A9B0:  7C 20 43 68 65 63 6B 4F 66 66 0D 0A 09 78 6F 72    | CheckOff...xor
00A9C0:  20 61 3A 20 63 61 6C 6C 20 26 39 32 37 42 09 09     a: call &927B..
00A9D0:  09 3B 20 7C 20 6C 6F 77 65 72 20 63 61 73 65 0D    .; | lower case.
00A9E0:  0A 09 63 61 6C 6C 20 72 64 72 69 76 65 09 09 09    ..call rdrive...
00A9F0:  09 3B 20 7C 20 72 65 73 74 6F 72 65 20 63 75 72    .; | restore cur
00AA00:  72 65 20 64 72 69 76 65 0D 0A 09 6A 70 20 6B 65    re drive...jp ke
00AA10:  79 73 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 09 3B 2B 2B    ys...........;++
00AA20:  2B 20 52 4F 55 54 09 52 65 73 74 6F 72 65 20 64    + ROUT.Restore d
00AA30:  69 73 63 0D 0A 0D 0A 2E 72 65 73 74 6F 72 09 6C    isc.....restor.l
00AA40:  64 20 64 65 2C 37 39 3A 20 63 61 6C 6C 20 26 39    d de,79: call &9
00AA50:  32 37 38 09 09 09 3B 49 6E 70 75 74 20 72 65 73    278...;Input res
00AA60:  74 72 69 63 74 69 6F 6E 73 0D 0A 09 6C 64 20 61    trictions...ld a
00AA70:  20 2C 31 20 3A 20 63 61 6C 6C 20 26 39 32 37 42     ,1 : call &927B
00AA80:  09 09 09 3B 55 70 70 65 72 20 63 61 73 65 0D 0A    ...;Upper case..
00AA90:  09 63 61 6C 6C 20 26 39 32 38 41 09 09 09 09 3B    .call &928A....;
00AAA0:  43 68 65 63 6B 4F 6E 0D 0A 09 63 61 6C 6C 20 26    CheckOn...call &
00AAB0:  39 32 38 31 09 09 09 09 3B 43 6C 65 61 72 20 69    9281....;Clear i
00AAC0:  6E 70 75 74 0D 0A 09 63 61 6C 6C 20 70 64 72 69    nput...call pdri
00AAD0:  76 65 09 09 09 09 3B 50 72 65 73 65 72 76 65 20    ve....;Preserve 
00AAE0:  64 69 73 63 20 64 72 69 76 65 0D 0A 0D 0A 09 63    disc drive.....c
00AAF0:  61 6C 6C 20 73 74 61 74 73 3A 20 70 75 73 68 20    all stats: push 
00AB00:  68 6C 3A 20 70 6F 70 20 69 78 0D 0A 09 6C 64 20    hl: pop ix...ld 
00AB10:  61 2C 28 69 78 2B 33 36 29 3A 20 6F 72 20 61 3A    a,(ix+36): or a:
00AB20:  20 6A 70 20 7A 20 2C 63 6E 74 72 73 74 09 3B 4E     jp z ,cntrst.;N
00AB30:  6F 74 20 61 72 63 68 69 76 65 64 3F 0D 0A 09 63    ot archived?...c
00AB40:  61 6C 6C 20 69 6E 73 64 73 63 20 3A 20 6A 70 20    all insdsc : jp 
00AB50:  63 2C 72 65 73 74 71 74 09 09 3B 49 6E 73 65 72    c,restqt..;Inser
00AB60:  74 20 64 69 73 63 20 70 6C 65 61 73 65 0D 0A 0D    t disc please...
00AB70:  0A 09 6C 64 20 65 2C 31 3A 20 63 61 6C 6C 20 26    ..ld e,1: call &
00AB80:  39 32 41 35 09 09 09 3B 44 72 69 76 65 20 42 0D    92A5...;Drive B.
00AB90:  0A 09 70 75 73 68 20 69 78 3A 20 70 6F 70 20 68    ..push ix: pop h
00ABA0:  6C 3A 20 6C 64 20 64 65 2C 33 37 3A 20 61 64 64    l: ld de,37: add
00ABB0:  20 68 6C 2C 64 65 09 3B 4F 70 65 6E 20 69 6E 70     hl,de.;Open inp
00ABC0:  75 74 20 66 69 6C 65 0D 0A 09 6C 64 20 62 2C 31    ut file...ld b,1
00ABD0:  32 3A 20 6C 64 20 64 65 2C 26 32 38 30 30 3A 20    2: ld de,&2800: 
00ABE0:  63 61 6C 6C 20 26 42 43 37 37 09 3B 20 7C 0D 0A    call &BC77.; |..
00ABF0:  09 6C 64 20 28 72 65 61 64 63 70 2B 32 29 2C 68    .ld (readcp+2),h
00AC00:  54 72 61 63 6B 2D 49 6E 66 6F 0D 0A 00 00 00 00    Track-Info......
00AC10:  09 00 01 00 02 09 4E E5 09 00 C6 02 00 00 00 02    ......N.........
00AC20:  09 00 C2 02 00 00 00 02 09 00 C7 02 00 00 00 02    ................
00AC30:  09 00 C3 02 00 00 00 02 09 00 C8 02 00 00 00 02    ................
00AC40:  09 00 C4 02 00 00 00 02 09 00 C9 02 00 00 00 02    ................
00AC50:  09 00 C5 02 00 00 00 02 09 00 C1 02 00 00 00 02    ................
00AC60:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
00AC70:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
00AC80:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
00AC90:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
00ACA0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
00ACB0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
00ACC0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
00ACD0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
00ACE0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
00ACF0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
00AD00:  3B 20 7C 0D 0A 09 72 65 74 0D 0A 0D 0A 09 3B 2D    ; |...ret.....;-
00AD10:  2D 2D 20 73 75 62 72 09 43 6F 70 79 20 66 69 6C    -- subr.Copy fil
00AD20:  65 6E 61 6D 65 20 41 20 74 6F 20 48 4C 0D 0A 0D    ename A to HL...
00AD30:  0A 2E 63 6F 70 79 66 6E 09 70 75 73 68 20 61 66    ..copyfn.push af
00AD40:  3A 20 65 78 20 64 65 2C 68 6C 0D 0A 09 20 63 61    : ex de,hl... ca
00AD50:  6C 6C 20 26 39 32 42 34 3A 20 6C 64 20 62 2C 30    ll &92B4: ld b,0
00AD60:  0D 0A 2E 63 66 6E 6C 70 09 20 6C 64 20 61 2C 28    ...cfnlp. ld a,(
00AD70:  68 6C 29 3A 20 63 70 20 22 2E 22 3A 20 69 6E 63    hl): cp ".": inc
00AD80:  20 68 6C 3A 20 6A 72 20 7A 2C 63 66 6E 64 6F 74     hl: jr z,cfndot
00AD90:  0D 0A 09 20 6C 64 20 28 64 65 29 2C 61 3A 20 69    ... ld (de),a: i
00ADA0:  6E 63 20 64 65 3A 20 69 6E 63 20 62 3A 20 6A 72    nc de: inc b: jr
00ADB0:  20 63 66 6E 6C 70 0D 0A 2E 63 66 6E 64 6F 74 09     cfnlp...cfndot.
00ADC0:  20 62 69 74 20 33 2C 62 3A 20 6A 72 20 6E 7A 2C     bit 3,b: jr nz,
00ADD0:  63 66 6E 65 78 74 0D 0A 09 20 6C 64 20 61 2C 22    cfnext... ld a,"
00ADE0:  20 22 3A 20 6C 64 20 28 64 65 29 2C 61 3A 20 69     ": ld (de),a: i
00ADF0:  6E 63 20 64 65 3A 20 69 6E 63 20 62 3A 20 6A 72    nc de: inc b: jr
00AE00:  20 63 66 6E 64 6F 74 0D 0A 2E 63 66 6E 65 78 74     cfndot...cfnext
00AE10:  09 20 6C 64 20 61 2C 22 2E 22 3A 20 6C 64 20 28    . ld a,".": ld (
00AE20:  64 65 29 2C 61 3A 20 69 6E 63 20 64 65 0D 0A 09    de),a: inc de...
00AE30:  20 6C 64 20 61 2C 28 68 6C 29 3A 20 6F 72 20 61     ld a,(hl): or a
00AE40:  3A 20 63 61 6C 6C 20 7A 2C 63 66 73 70 63 3A 20    : call z,cfspc: 
00AE50:  6C 64 20 28 64 65 29 2C 61 3A 20 69 6E 63 20 68    ld (de),a: inc h
00AE60:  6C 3A 20 69 6E 63 20 64 65 0D 0A 09 20 6C 64 20    l: inc de... ld 
00AE70:  61 2C 28 68 6C 29 3A 20 6F 72 20 61 3A 20 63 61    a,(hl): or a: ca
00AE80:  6C 6C 20 7A 2C 63 66 73 70 63 3A 20 6C 64 20 28    ll z,cfspc: ld (
00AE90:  64 65 29 2C 61 3A 20 69 6E 63 20 68 6C 3A 20 69    de),a: inc hl: i
00AEA0:  6E 63 20 64 65 0D 0A 09 20 6C 64 20 61 2C 28 68    nc de... ld a,(h
00AEB0:  6C 29 3A 20 6F 72 20 61 3A 20 63 61 6C 6C 20 7A    l): or a: call z
00AEC0:  2C 63 66 73 70 63 3A 20 6C 64 20 28 64 65 29 2C    ,cfspc: ld (de),
00AED0:  61 3A 20 69 6E 63 20 68 6C 3A 20 69 6E 63 20 64    a: inc hl: inc d
00AEE0:  65 0D 0A 09 65 78 20 64 65 2C 68 6C 3A 20 70 6F    e...ex de,hl: po
00AEF0:  70 20 61 66 3A 20 72 65 74 0D 0A 0D 0A 2E 63 66    p af: ret.....cf
00AF00:  65 73 74 71 74 09 09 09 3B 43 6C 6F 73 65 20 66    estqt...;Close f
00AF10:  69 6C 65 20 61 6E 64 20 65 78 69 74 0D 0A 0D 0A    ile and exit....
00AF20:  09 3B 2D 2D 2D 20 73 75 62 72 09 52 65 61 64 20    .;--- subr.Read 
00AF30:  63 6F 6D 70 72 65 73 73 65 64 20 62 79 74 65 0D    compressed byte.
00AF40:  0A 0D 0A 2E 72 65 61 64 63 6D 09 70 75 73 68 20    ....readcm.push 
00AF50:  62 63 3A 20 70 75 73 68 20 68 6C 0D 0A 09 20 6C    bc: push hl... l
00AF60:  64 20 68 6C 2C 28 77 72 69 74 63 70 29 3A 20 6C    d hl,(writcp): l
00AF70:  64 20 63 2C 28 68 6C 29 09 09 3B 50 65 65 6B 20    d c,(hl)..;Peek 
00AF80:  69 74 0D 0A 09 20 69 6E 63 20 68 6C 3A 20 6C 64    it... inc hl: ld
00AF90:  20 28 77 72 69 74 63 70 29 2C 68 6C 09 09 09 3B     (writcp),hl...;
00AFA0:  4E 65 78 74 20 61 64 64 72 65 73 73 0D 0A 09 20    Next address... 
00AFB0:  6C 64 20 61 2C 68 3A 20 63 70 20 26 33 30 3A 20    ld a,h: cp &30: 
00AFC0:  6A 72 20 7A 2C 72 65 61 64 6F 66 09 09 3B 20 7C    jr z,readof..; |
00AFD0:  20 6F 76 65 72 66 6C 6F 77 73 20 62 75 66 66 65     overflows buffe
00AFE0:  72 3F 0D 0A 09 70 6F 70 20 68 6C 3A 20 6C 64 20    r?...pop hl: ld 
00AFF0:  61 2C 63 3A 20 70 6F 70 20 62 63 3A 20 72 65 74    a,c: pop bc: ret
00B000:  09 09 3B 20 7C 20 20 7C 20 6E 6F 2C 20 73 6F 20    ..; |  | no, so 
00B010:  72 65 74 75 72 6E 0D 0A 0D 0A 2E 72 65 61 64 6F    return.....reado
00B020:  66 09 20 63 61 6C 6C 20 72 65 61 64 32 6B 09 09    f. call read2k..
00B030:  09 09 3B 52 65 61 64 20 69 6E 20 62 75 66 66 65    ..;Read in buffe
00B040:  72 0D 0A 09 20 63 61 6C 6C 20 69 6E 69 74 63 6D    r... call initcm
00B050:  09 09 09 09 3B 52 65 73 74 61 72 74 20 69 74 0D    ....;Restart it.
00B060:  0A 09 70 6F 70 20 68 6C 3A 20 6C 64 20 61 2C 63    ..pop hl: ld a,c
00B070:  3A 20 70 6F 70 20 62 63 3A 20 72 65 74 09 09 3B    : pop bc: ret..;
00B080:  2E 2E 2E 61 6E 64 20 72 65 74 75 72 6E 0D 0A 0D    ...and return...
00B090:  0A 09 3B 2D 2D 2D 20 73 75 62 72 09 52 65 61 64    ..;--- subr.Read
00B0A0:  20 32 6B 20 6F 66 20 66 69 6C 65 0D 0A 0D 0A 2E     2k of file.....
00B0B0:  72 65 61 64 32 6B 09 70 75 73 68 20 62 63 3A 20    read2k.push bc: 
00B0C0:  70 75 73 68 20 64 65 3A 20 70 75 73 68 20 69 78    push de: push ix
00B0D0:  09 09 3B 57 72 69 74 65 20 32 6B 20 75 73 69 6E    ..;Write 2k usin
00B0E0:  67 20 43 41 53 20 4F 55 54 20 44 49 52 45 43 54    g CAS OUT DIRECT
00B0F0:  0D 0A 2E 72 65 61 64 63 70 09 20 6C 64 20 69 78    ...readcp. ld ix
00B100:  73 70 63 09 6C 64 20 68 6C 2C 73 70 61 63 65 73    spc.ld hl,spaces
00B110:  3A 20 72 65 74 0D 0A 0D 0A 0D 0A 09 3B 2A 2A 2A    : ret.......;***
00B120:  20 53 55 42 52 09 49 6E 70 75 74 20 64 69 73 63     SUBR.Input disc
00B130:  20 74 69 74 6C 65 20 74 6F 20 49 58 0D 0A 0D 0A     title to IX....
00B140:  2E 74 69 74 6C 65 73 09 63 61 6C 6C 20 26 39 32    .titles.call &92
00B150:  38 31 09 09 09 09 3B 43 6C 65 61 72 20 69 6E 70    81....;Clear inp
00B160:  75 74 20 62 75 66 66 65 72 0D 0A 09 6C 64 20 68    ut buffer...ld h
00B170:  2C 32 32 3A 20 6C 64 20 6C 2C 38 36 09 09 09 3B    ,22: ld l,86...;
00B180:  44 69 73 70 6C 61 79 20 77 69 6E 64 6F 77 0D 0A    Display window..
00B190:  09 6C 64 20 64 2C 33 36 3A 20 6C 64 20 65 2C 33    .ld d,36: ld e,3
00B1A0:  34 3A 20 63 61 6C 6C 20 26 39 32 33 46 09 09 3B    4: call &923F..;
00B1B0:  20 7C 0D 0A 09 6C 64 20 68 6C 2C 64 6E 61 6D 65     |...ld hl,dname
00B1C0:  3A 20 63 61 6C 6C 20 26 39 32 30 33 09 09 09 3B    : call &9203...;
00B1D0:  50 72 69 6E 74 20 74 69 74 6C 65 0D 0A 09 6C 64    Print title...ld
00B1E0:  20 64 2C 32 34 3A 20 6C 64 20 65 2C 31 30 34 3A     d,24: ld e,104:
00B1F0:  20 6C 64 20 63 2C 33 31 3A 20 6F 72 20 61 09 3B     ld c,31: or a.;
00B200:  45 64 69 74 20 73 74 72 69 6E 67 0D 0A 09 70 75    Edit string...pu
00B210:  73 68 20 69 78 3A 20 70 6F 70 20 68 6C 3A 20 63    sh ix: pop hl: c
00B220:  61 6C 6C 20 26 39 32 37 35 09 09 3B 20 7C 0D 0A    all &9275..; |..
00B230:  09 72 65 74 0D 0A 0D 0A 0D 0A 0D 0A 09 3B 2A 2A    .ret.........;**
00B240:  2A 20 52 4F 55 54 09 50 72 69 6E 74 20 66 69 6C    * ROUT.Print fil
00B250:  65 20 63 61 72 64 20 66 6F 72 20 64 69 73 63 20    e card for disc 
00B260:  61 74 20 48 4C 0D 0A 0D 0A 2E 63 61 72 64 09 70    at HL.....card.p
00B270:  75 73 68 20 68 6C 09 09 09 09 09 3B 46 69 6C 65    ush hl.....;File
00B280:  20 63 61 72 64 0D 0A 09 20 6C 64 20 68 2C 30 3A     card... ld h,0:
00B290:  20 6C 64 20 6C 2C 31 36 09 09 09 3B 20 7C 0D 0A     ld l,16...; |..
00B2A0:  09 20 6C 64 20 64 2C 38 30 3A 20 6C 64 20 65 2C    . ld d,80: ld e,
00B2B0:  31 38 34 09 09 09 3B 20 7C 0D 0A 09 20 63 61 6C    184...; |... cal
00B2C0:  6C 20 26 39 32 33 36 09 09 09 09 3B 20 7C 0D 0A    l &9236....; |..
00B2D0:  09 70 6F 70 20 68 6C 09 09 09 09 09 3B 20 7C 0D    .pop hl.....; |.
00B2E0:  0A 09 6C 64 20 61 2C 38 20 3A 20 63 61 6C 6C 20    ..ld a,8 : call 
00B2F0:  26 39 32 30 30 3A 20 63 61 6C 6C 20 26 39 32 30    &9200: call &920
00B300:  2C 30 09 09 09 09 3B 20 7C 0D 0A 09 20 6C 64 20    ,0....; |... ld 
00B310:  28 69 78 2B 36 34 29 2C 30 3A 20 6C 64 20 28 69    (ix+64),0: ld (i
00B320:  78 2B 36 35 29 2C 26 38 09 09 3B 20 7C 0D 0A 09    x+65),&8..; |...
00B330:  20 6C 64 20 28 69 78 2B 36 36 29 2C 30 3A 20 6C     ld (ix+66),0: l
00B340:  64 20 68 6C 2C 26 32 38 30 30 3A 20 63 61 6C 6C    d hl,&2800: call
00B350:  20 26 42 43 38 33 09 3B 20 7C 0D 0A 09 70 6F 70     &BC83.; |...pop
00B360:  20 69 78 3A 20 70 6F 70 20 64 65 3A 20 70 6F 70     ix: pop de: pop
00B370:  20 62 63 09 09 09 3B 20 7C 0D 0A 09 72 65 74 09     bc...; |...ret.
00B380:  09 09 09 09 3B 20 7C 0D 0A 0D 0A 09 3B 2D 2D 2D    ....; |.....;---
00B390:  20 73 75 62 72 09 50 72 69 6E 74 20 70 65 72 63     subr.Print perc
00B3A0:  65 6E 74 61 67 65 0D 0A 0D 0A 2E 72 65 73 74 70    entage.....restp
00B3B0:  63 09 6C 64 20 64 2C 30 3A 20 6C 64 20 65 2C 62    c.ld d,0: ld e,b
00B3C0:  3A 20 6C 64 20 68 6C 2C 33 39 3A 20 63 61 6C 6C    : ld hl,39: call
00B3D0:  20 26 39 32 46 46 09 3B 43 61 6C 63 75 6C 61 74     &92FF.;Calculat
00B3E0:  65 20 70 65 72 63 65 6E 74 61 67 65 0D 0A 09 63    e percentage...c
00B3F0:  61 6C 6C 20 26 39 33 32 39 3A 20 72 65 74 09 09    all &9329: ret..
00B400:  09 09 3B 50 72 69 6E 74 0D 0A 0D 0A 09 3B 2D 2D    ..;Print.....;--
00B410:  2D 20 73 75 62 72 09 57 72 69 74 65 20 74 72 61    - subr.Write tra
00B420:  63 6B 20 42 0D 0A 0D 0A 2E 77 72 69 74 74 72 09    ck B.....writtr.
00B430:  6C 64 20 63 2C 30 3A 20 6C 64 20 68 6C 2C 26 31    ld c,0: ld hl,&1
00B440:  36 30 30 09 09 09 3B 53 65 63 74 6F 72 20 28 73    600...;Sector (s
00B450:  65 6C 66 2D 6D 6F 64 69 66 79 69 6E 67 29 0D 0A    elf-modifying)..
00B460:  2E 77 72 69 74 6C 70 09 6C 64 20 65 2C 30 3A 20    .writlp.ld e,0: 
00B470:  6C 64 20 64 2C 62 3A 20 63 61 6C 6C 20 26 39 32    ld d,b: call &92
00B480:  39 36 09 09 3B 57 72 69 74 65 20 73 65 63 74 6F    96..;Write secto
00B490:  72 0D 0A 09 69 6E 63 20 63 20 3A 20 6C 64 20 61    r...inc c : ld a
00B4A0:  2C 63 3A 20 61 6E 64 20 26 46 09 09 09 3B 20 7C    ,c: and &F...; |
00B4B0:  20 6E 65 78 74 20 73 65 63 74 6F 72 0D 0A 09 6C     next sector...l
00B4C0:  64 20 64 65 2C 35 31 32 3A 20 61 64 64 20 68 6C    d de,512: add hl
00B4D0:  2C 64 65 09 09 09 3B 20 7C 20 6E 65 78 74 20 61    ,de...; | next a
00B4E0:  64 64 72 65 73 73 0D 0A 09 63 70 20 31 30 20 3A    ddress...cp 10 :
00B4F0:  20 6A 72 20 6E 7A 2C 77 72 69 74 6C 70 09 09 09     jr nz,writlp...
00B500:  30 09 09 3B 42 61 63 6B 73 70 61 63 65 20 6F 76    0..;Backspace ov
00B510:  65 72 20 63 6C 6F 73 65 20 62 6F 78 0D 0A 09 63    er close box...c
00B520:  61 6C 6C 20 26 39 32 30 30 3A 20 6C 64 20 61 2C    all &9200: ld a,
00B530:  33 32 3A 20 63 61 6C 6C 20 26 39 32 30 30 09 09    32: call &9200..
00B540:  3B 20 7C 20 61 6E 64 20 77 69 70 65 20 61 20 62    ; | and wipe a b
00B550:  69 74 0D 0A 09 70 75 73 68 20 68 6C 3A 20 63 61    it...push hl: ca
00B560:  6C 6C 20 26 39 32 30 33 3A 20 70 6F 70 20 69 78    ll &9203: pop ix
00B570:  09 09 3B 54 69 74 6C 65 0D 0A 09 6C 64 20 61 2C    ..;Title...ld a,
00B580:  31 3A 20 63 61 6C 6C 20 26 39 32 30 43 09 09 09    1: call &920C...
00B590:  3B 4E 75 6D 62 65 72 20 6F 66 20 66 69 6C 65 73    ;Number of files
00B5A0:  0D 0A 09 6C 64 20 68 6C 2C 73 70 63 33 20 20 3A    ...ld hl,spc3  :
00B5B0:  20 63 61 6C 6C 20 26 39 32 30 33 09 09 3B 20 7C     call &9203..; |
00B5C0:  0D 0A 09 6C 64 20 61 2C 28 69 78 2B 33 32 29 3A    ...ld a,(ix+32):
00B5D0:  20 63 61 6C 6C 20 26 39 32 31 38 09 09 3B 20 7C     call &9218..; |
00B5E0:  0D 0A 09 6C 64 20 68 6C 2C 66 69 6C 65 73 20 3A    ...ld hl,files :
00B5F0:  20 63 61 6C 6C 20 26 39 32 30 33 09 09 3B 20 7C     call &9203..; |
00B600:  0D 0A 09 6C 64 20 68 6C 2C 73 70 63 33 20 20 3A    ...ld hl,spc3  :
00B610:  20 63 61 6C 6C 20 26 39 32 30 33 09 09 3B 6B 20     call &9203..;k 
00B620:  66 72 65 65 0D 0A 09 6C 64 20 6C 2C 28 69 78 2B    free...ld l,(ix+
00B630:  33 33 29 09 09 09 09 3B 20 7C 0D 0A 09 6C 64 20    33)....; |...ld 
00B640:  68 2C 28 69 78 2B 33 34 29 3A 20 63 61 6C 6C 20    h,(ix+34): call 
00B650:  26 39 32 31 42 09 09 3B 20 7C 0D 0A 09 6C 64 20    &921B..; |...ld 
00B660:  68 6C 2C 66 72 65 65 20 20 3A 20 63 61 6C 6C 20    hl,free  : call 
00B670:  26 39 32 30 33 09 09 3B 20 7C 0D 0A 09 6C 64 20    &9203..; |...ld 
00B680:  68 6C 2C 73 70 63 33 20 20 3A 20 63 61 6C 6C 20    hl,spc3  : call 
00B690:  26 39 32 30 33 09 09 3B 46 6F 72 6D 61 74 0D 0A    &9203..;Format..
00B6A0:  09 6C 64 20 61 2C 28 69 78 2B 33 35 29 3A 20 63    .ld a,(ix+35): c
00B6B0:  61 6C 6C 20 70 66 6F 72 6D 3A 20 63 61 6C 6C 20    all pform: call 
00B6C0:  26 39 32 30 33 09 3B 20 7C 0D 0A 09 6C 64 20 68    &9203.; |...ld h
00B6D0:  6C 2C 73 70 63 33 20 20 3A 20 63 61 6C 6C 20 26    l,spc3  : call &
00B6E0:  39 32 30 33 09 09 3B 41 72 63 68 69 76 65 20 64    9203..;Archive d
00B6F0:  69 73 63 0D 0A 09 6C 64 20 61 2C 28 69 78 2B 33    isc...ld a,(ix+3
00B700:  3B 20 7C 20 6C 6F 6F 70 20 69 66 20 6E 6F 74 20    ; | loop if not 
00B710:  39 20 73 65 63 74 6F 72 73 0D 0A 09 72 65 74 0D    9 sectors...ret.
00B720:  0A 0D 0A 09 3B 2D 2D 2D 20 73 65 63 74 09 51 75    ....;--- sect.Qu
00B730:  69 74 20 72 65 73 74 6F 72 69 6E 67 20 69 6D 61    it restoring ima
00B740:  67 65 0D 0A 0D 0A 2E 63 6E 74 72 73 74 09 6C 64    ge.....cntrst.ld
00B750:  20 61 2C 26 38 32 3A 20 6C 64 20 68 6C 2C 6E 6F     a,&82: ld hl,no
00B760:  74 61 74 78 3A 20 63 61 6C 6C 20 26 39 32 34 38    tatx: call &9248
00B770:  3A 20 6A 70 20 72 65 73 74 71 74 0D 0A 2E 6E 6F    : jp restqt...no
00B780:  74 69 6D 67 09 6C 64 20 61 2C 26 38 32 3A 20 6C    timg.ld a,&82: l
00B790:  64 20 68 6C 2C 6E 6F 74 69 74 78 3A 20 63 61 6C    d hl,notitx: cal
00B7A0:  6C 20 26 39 32 34 38 3A 20 6A 70 20 72 65 73 74    l &9248: jp rest
00B7B0:  71 74 0D 0A 0D 0A 2E 72 65 73 74 71 74 09 63 61    qt.....restqt.ca
00B7C0:  6C 6C 20 73 74 61 74 73 3A 20 63 61 6C 6C 20 63    ll stats: call c
00B7D0:  61 72 64 09 09 09 3B 51 75 69 74 20 72 65 73 74    ard...;Quit rest
00B7E0:  6F 72 65 20 6D 6F 64 65 0D 0A 09 63 61 6C 6C 20    ore mode...call 
00B7F0:  26 39 32 38 44 09 09 09 09 3B 20 7C 20 43 68 65    &928D....; | Che
00B800:  63 6B 4F 66 66 0D 0A 09 78 6F 72 20 61 3A 20 63    ckOff...xor a: c
00B810:  61 6C 6C 20 26 39 32 37 42 09 09 09 3B 20 7C 20    all &927B...; | 
00B820:  6C 6F 77 65 72 20 63 61 73 65 0D 0A 09 63 61 6C    lower case...cal
00B830:  6C 20 26 42 43 37 44 3A 20 63 61 6C 6C 20 72 64    l &BC7D: call rd
00B840:  72 69 76 65 09 09 09 3B 20 7C 20 61 62 61 6E 64    rive...; | aband
00B850:  6F 6E 20 69 6E 70 75 74 2C 20 72 65 73 74 6F 72    on input, restor
00B860:  65 20 64 72 69 76 65 0D 0A 09 6A 70 20 6B 65 79    e drive...jp key
00B870:  73 0D 0A 0D 0A 0D 0A 0D 0A 09 3B 2A 2A 2A 20 53    s.........;*** S
00B880:  55 42 52 09 4C 6F 67 20 64 69 73 63 20 69 6E 20    UBR.Log disc in 
00B890:  61 74 20 48 4C 0D 0A 09 3B 09 09 6F 6E 20 72 65    at HL...;..on re
00B8A0:  74 75 72 6E 2C 20 48 4C 20 63 6F 6E 74 61 69 6E    turn, HL contain
00B8B0:  73 20 6E 65 78 74 20 66 72 65 65 20 62 79 74 65    s next free byte
00B8C0:  20 28 6D 61 78 2E 20 6C 65 6E 2E 20 33 31 30 39     (max. len. 3109
00B8D0:  29 0D 0A 09 3B 09 09 72 65 73 65 74 73 20 61 72    )...;..resets ar
00B8E0:  63 68 69 76 65 20 62 69 74 0D 0A 0D 0A 2E 6C 6F    chive bit.....lo
00B8F0:  67 73 75 62 09 70 75 73 68 20 68 6C 09 09 09 09    gsub.push hl....
00B900:  36 29 3A 20 6F 72 20 61 3A 20 6A 72 20 7A 2C 66    6): or a: jr z,f
00B910:  63 6E 6F 74 09 09 3B 20 7C 20 75 73 65 64 3F 0D    cnot..; | used?.
00B920:  0A 09 6C 64 20 68 6C 2C 61 64 69 73 63 20 3A 20    ..ld hl,adisc : 
00B930:  63 61 6C 6C 20 26 39 32 30 33 09 09 3B 20 7C 20    call &9203..; | 
00B940:  79 65 73 0D 0A 09 6C 64 20 61 2C 28 69 78 2B 33    yes...ld a,(ix+3
00B950:  36 29 3A 20 63 61 6C 6C 20 26 39 32 31 38 3A 20    6): call &9218: 
00B960:  6A 72 20 66 63 61 64 6E 65 09 3B 20 7C 20 20 7C    jr fcadne.; |  |
00B970:  0D 0A 2E 66 63 6E 6F 74 09 6C 64 20 68 6C 2C 6E    ...fcnot.ld hl,n
00B980:  6F 74 61 72 63 3A 20 63 61 6C 6C 20 26 39 32 30    otarc: call &920
00B990:  33 09 09 3B 20 7C 20 6E 6F 0D 0A 2E 66 63 61 64    3..; | no...fcad
00B9A0:  6E 65 09 6C 64 20 61 2C 30 3A 20 63 61 6C 6C 20    ne.ld a,0: call 
00B9B0:  26 39 32 30 43 0D 0A 0D 0A 09 6C 64 20 62 2C 28    &920C.....ld b,(
00B9C0:  69 78 2B 33 32 29 3A 20 78 6F 72 20 61 3A 20 6C    ix+32): xor a: l
00B9D0:  64 20 28 63 75 72 64 69 72 29 2C 61 09 3B 4E 75    d (curdir),a.;Nu
00B9E0:  6D 62 65 72 20 6F 66 20 66 69 6C 65 73 0D 0A 09    mber of files...
00B9F0:  6C 64 20 64 65 2C 34 39 3A 20 61 64 64 20 69 78    ld de,49: add ix
00BA00:  2C 64 65 3A 20 6C 64 20 28 77 68 6C 64 69 72 29    ,de: ld (whldir)
00BA10:  2C 69 78 09 3B 46 69 6E 64 20 6F 72 69 67 69 6E    ,ix.;Find origin
00BA20:  20 6F 66 20 66 69 6C 65 20 6E 61 6D 65 73 0D 0A     of file names..
00BA30:  09 6C 64 20 68 6C 2C 26 30 32 32 30 09 09 09 09    .ld hl,&0220....
00BA40:  3B 53 63 72 65 65 6E 20 70 6F 73 69 74 69 6F 6E    ;Screen position
00BA50:  0D 0A 09 6C 64 20 61 2C 62 3A 20 6F 72 20 61 3A    ...ld a,b: or a:
00BA60:  20 6A 72 20 7A 2C 65 6F 70 72 6E 74 09 09 3B 41     jr z,eoprnt..;A
00BA70:  6E 79 20 66 69 6C 65 73 20 6C 65 66 74 3F 0D 0A    ny files left?..
00BA80:  2E 64 69 73 70 6C 70 09 63 61 6C 6C 20 70 66 6E    .displp.call pfn
00BA90:  61 6D 65 09 09 09 09 3B 50 72 69 6E 74 20 66 69    ame....;Print fi
00BAA0:  6C 65 6E 61 6D 65 0D 0A 09 63 61 6C 6C 20 61 64    lename...call ad
00BAB0:  76 61 6E 63 3A 20 6A 72 20 6E 63 2C 65 6F 70 72    vanc: jr nc,eopr
00BAC0:  6E 74 09 09 3B 4E 65 78 74 20 63 75 72 73 6F 72    nt..;Next cursor
00BAD0:  20 70 6F 73 69 74 69 6F 6E 0D 0A 09 64 6A 6E 7A     position...djnz
00BAE0:  20 64 69 73 70 6C 70 09 09 09 09 3B 61 6E 64 20     displp....;and 
00BAF0:  6C 6F 6F 70 0D 0A 0D 0A 2E 65 6F 70 72 6E 74 09    loop.....eoprnt.
00BB00:  09 3B 47 65 74 20 66 6F 72 6D 61 74 0D 0A 2E 6C    .;Get format...l
00BB10:  6F 67 65 72 72 09 20 73 63 66 3A 20 63 61 6C 6C    ogerr. scf: call
00BB20:  20 26 39 32 39 39 09 09 09 3B 20 7C 0D 0A 09 20     &9299...; |... 
00BB30:  6F 72 20 61 3A 20 6A 72 20 7A 2C 6C 6F 67 65 72    or a: jr z,loger
00BB40:  72 09 09 09 3B 20 7C 20 6C 6F 6F 70 20 6F 6E 20    r...; | loop on 
00BB50:  65 72 72 6F 72 0D 0A 09 70 6F 70 20 69 78 09 09    error...pop ix..
00BB60:  09 09 09 3B 20 7C 0D 0A 09 6C 64 20 28 69 78 2B    ...; |...ld (ix+
00BB70:  33 35 29 2C 61 09 09 09 09 3B 53 74 6F 72 65 20    35),a....;Store 
00BB80:  69 74 20 28 45 52 52 4F 52 20 54 52 41 50 50 49    it (ERROR TRAPPI
00BB90:  4E 47 21 21 21 21 21 29 0D 0A 09 70 75 73 68 20    NG!!!!!)...push 
00BBA0:  69 78 3A 20 63 61 6C 6C 20 74 69 74 6C 65 73 3A    ix: call titles:
00BBB0:  20 70 6F 70 20 69 78 09 09 3B 49 6E 70 75 74 20     pop ix..;Input 
00BBC0:  74 69 74 6C 65 0D 0A 09 70 75 73 68 20 69 78 3A    title...push ix:
00BBD0:  20 6C 64 20 61 2C 31 3A 20 6C 64 20 64 65 2C 73     ld a,1: ld de,s
00BBE0:  74 61 72 3A 20 63 61 6C 6C 20 26 39 32 42 31 09    tar: call &92B1.
00BBF0:  3B 53 63 61 6E 20 64 69 73 63 0D 0A 09 70 6F 70    ;Scan disc...pop
00BC00:  20 69 78 20 3A 20 6C 64 20 28 69 78 2B 33 32 29     ix : ld (ix+32)
00BC10:  2C 61 09 09 09 3B 4E 75 6D 62 65 72 20 6F 66 20    ,a...;Number of 
00BC20:  66 69 6C 65 73 0D 0A 09 09 20 6C 64 20 28 69 78    files.... ld (ix
00BC30:  2B 33 33 29 2C 6C 3A 20 6C 64 20 28 69 78 2B 33    +33),l: ld (ix+3
00BC40:  34 29 2C 68 09 3B 46 72 65 65 20 6B 20 6F 6E 20    4),h.;Free k on 
00BC50:  64 69 73 63 0D 0A 0D 0A 09 70 75 73 68 20 69 78    disc.....push ix
00BC60:  3A 20 70 6F 70 20 68 6C 3A 20 78 6F 72 20 61 09    : pop hl: xor a.
00BC70:  09 09 3B 43 6F 70 79 20 66 69 6C 65 6E 61 6D 65    ..;Copy filename
00BC80:  73 20 74 6F 20 62 75 66 66 65 72 0D 0A 09 6C 64    s to buffer...ld
00BC90:  20 64 65 2C 34 39 3A 20 61 64 64 20 68 6C 2C 64     de,49: add hl,d
00BCA0:  65 09 09 09 3B 20 7C 0D 0A 09 63 70 20 28 69 78    e...; |...cp (ix
00BCB0:  2B 33 32 29 3A 20 72 65 74 20 7A 09 09 09 3B 20    +32): ret z...; 
00BCC0:  7C 0D 0A 2E 6C 6F 67 73 6C 70 09 69 6E 63 20 61    |...logslp.inc a
00BCD0:  3A 20 63 61 6C 6C 20 63 6F 70 79 66 6E 09 09 09    : call copyfn...
00BCE0:  3B 20 7C 0D 0A 09 63 70 20 28 69 78 2B 33 32 29    ; |...cp (ix+32)
00BCF0:  3A 20 6A 70 20 6E 7A 2C 6C 6F 67 73 6C 70 09 09    : jp nz,logslp..
00BD00:  0A 09 6C 64 20 63 2C 61 20 20 20 20 20 3A 20 63    ..ld c,a     : c
00BD10:  70 20 33 20 20 3A 20 6A 70 20 7A 20 2C 72 73 74    p 3  : jp z ,rst
00BD20:  65 6F 66 09 3B 20 7C 20 45 4F 46 3F 0D 0A 09 63    eof.; | EOF?...c
00BD30:  61 6C 6C 20 72 65 61 64 63 6D 09 09 09 09 3B 20    all readcm....; 
00BD40:  7C 20 67 65 74 20 62 79 74 65 0D 0A 2E 65 78 70    | get byte...exp
00BD50:  72 6C 65 09 6C 64 20 28 69 79 29 2C 61 3A 20 69    rle.ld (iy),a: i
00BD60:  6E 63 20 69 79 3A 20 64 65 63 20 63 3A 20 6A 72    nc iy: dec c: jr
00BD70:  20 6E 7A 2C 65 78 70 72 6C 65 09 3B 20 7C 20 61     nz,exprle.; | a
00BD80:  6E 64 20 63 6F 70 79 20 69 74 20 72 65 70 65 61    nd copy it repea
00BD90:  74 65 64 6C 79 0D 0A 09 6A 72 20 6E 65 78 74 75    tedly...jr nextu
00BDA0:  6E 09 09 09 09 3B 20 7C 20 63 61 72 72 79 20 6F    n....; | carry o
00BDB0:  6E 0D 0A 2E 73 69 6D 70 65 39 09 6C 64 20 61 2C    n...simpe9.ld a,
00BDC0:  26 45 39 09 09 09 09 3B 53 69 6D 70 6C 65 20 26    &E9....;Simple &
00BDD0:  45 39 20 62 79 74 65 0D 0A 2E 73 69 6D 70 6C 65    E9 byte...simple
00BDE0:  09 6C 64 20 28 69 79 29 2C 61 3A 20 69 6E 63 20    .ld (iy),a: inc 
00BDF0:  69 79 09 09 09 3B 53 69 6D 70 6C 65 20 62 79 74    iy...;Simple byt
00BE00:  65 0D 0A 2E 6E 65 78 74 75 6E 09 6C 64 20 64 65    e...nextun.ld de
00BE10:  2C 26 32 38 30 30 3A 20 63 61 6C 6C 20 63 70 69    ,&2800: call cpi
00BE20:  79 64 65 3A 20 6A 72 20 6E 7A 2C 72 73 69 6E 6C    yde: jr nz,rsinl
00BE30:  70 09 3B 49 6E 6E 65 72 20 6C 6F 6F 70 0D 0A 09    p.;Inner loop...
00BE40:  63 61 6C 6C 20 77 72 69 74 74 72 09 09 09 09 3B    call writtr....;
00BE50:  57 72 69 74 65 20 74 72 61 63 6B 0D 0A 0D 0A 09    Write track.....
00BE60:  6C 64 20 61 2C 36 36 3A 20 63 61 6C 6C 20 26 42    ld a,66: call &B
00BE70:  42 31 45 3A 20 6A 70 20 6E 7A 2C 72 65 73 74 71    B1E: jp nz,restq
00BE80:  74 09 3B 51 75 69 74 20 69 66 20 45 53 43 20 68    t.;Quit if ESC h
00BE90:  65 6C 64 0D 0A 09 69 6E 63 20 62 09 09 09 09 09    eld...inc b.....
00BEA0:  3B 4E 65 78 74 20 74 72 61 63 6B 0D 0A 09 6C 64    ;Next track...ld
00BEB0:  20 61 2C 62 3A 20 63 70 20 34 30 3A 20 6A 70 20     a,b: cp 40: jp 
00BEC0:  6E 7A 2C 72 73 6F 75 6C 70 09 09 3B 20 7C 20 6C    nz,rsoulp..; | l
00BED0:  6F 6F 70 20 69 66 20 6E 6F 74 20 65 6E 64 20 6F    oop if not end o
00BEE0:  66 20 64 69 73 63 0D 0A 2E 72 73 74 65 6F 66 09    f disc...rsteof.
00BEF0:  63 61 6C 6C 20 26 42 43 37 41 3A 20 6A 70 20 72    call &BC7A: jp r
00BF00:  54 72 61 63 6B 2D 49 6E 66 6F 0D 0A 00 00 00 00    Track-Info......
00BF10:  0A 00 01 00 02 09 4E E5 0A 00 C9 02 00 00 00 02    ......N.........
00BF20:  0A 00 C5 02 00 00 00 02 0A 00 C1 02 00 00 00 02    ................
00BF30:  0A 00 C6 02 00 00 00 02 0A 00 C2 02 00 00 00 02    ................
00BF40:  0A 00 C7 02 00 00 00 02 0A 00 C3 02 00 00 00 02    ................
00BF50:  0A 00 C8 02 00 00 00 02 0A 00 C4 02 00 00 00 02    ................
00BF60:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
00BF70:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
00BF80:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
00BF90:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
00BFA0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
00BFB0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
00BFC0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
00BFD0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
00BFE0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
00BFF0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
00C000:  20 6C 64 20 64 2C 68 0D 0A 09 20 61 64 64 20 68     ld d,h... add h
00C010:  6C 2C 68 6C 3A 20 61 64 64 20 68 6C 2C 64 65 3A    l,hl: add hl,de:
00C020:  20 6C 64 20 64 65 2C 34 39 20 3A 20 61 64 64 20     ld de,49 : add 
00C030:  68 6C 2C 64 65 0D 0A 09 70 6F 70 20 64 65 3A 20    hl,de...pop de: 
00C040:  61 64 64 20 68 6C 2C 64 65 0D 0A 09 64 65 63 20    add hl,de...dec 
00C050:  61 3A 20 6A 72 20 72 65 63 6C 70 0D 0A 0D 0A 0D    a: jr reclp.....
00C060:  0A 09 3B 2A 2A 2A 20 44 41 54 41 09 4D 69 73 63    ..;*** DATA.Misc
00C070:  65 6C 6C 61 6E 65 6F 75 73 20 74 65 78 74 0D 0A    ellaneous text..
00C080:  0D 0A 2E 73 70 63 33 09 64 62 20 22 20 20 20 22    ...spc3.db "   "
00C090:  2C 30 0D 0A 2E 66 69 6C 65 73 09 64 62 20 22 20    ,0...files.db " 
00C0A0:  66 69 6C 65 73 22 2C 30 0D 0A 2E 66 72 65 65 09    files",0...free.
00C0B0:  64 62 20 22 6B 20 66 72 65 65 22 2C 30 0D 0A 2E    db "k free",0...
00C0C0:  66 6E 74 61 72 63 09 64 62 20 22 6E 6F 74 20 61    fntarc.db "not a
00C0D0:  72 63 68 69 76 65 64 22 2C 30 0D 0A 2E 6E 6F 74    rchived",0...not
00C0E0:  61 72 63 09 64 62 20 22 4E 6F 20 22 0D 0A 2E 61    arc.db "No "...a
00C0F0:  64 69 73 63 09 64 62 20 22 41 72 63 68 69 76 65    disc.db "Archive
00C100:  20 22 2C 30 0D 0A 2E 73 74 61 72 09 64 62 20 22     ",0...star.db "
00C110:  2A 22 0D 0A 2E 73 70 61 63 65 73 09 64 62 20 22    *"...spaces.db "
00C120:  20 20 20 22 0D 0A 2E 6D 61 69 6E 66 6E 09 64 62       "...mainfn.db
00C130:  20 22 4D 41 49 4E 2E 44 42 22 0D 0A 0D 0A 2E 64     "MAIN.DB".....d
00C140:  6E 61 6D 65 09 64 62 20 31 35 2C 31 31 2C 22 44    name.db 15,11,"D
00C150:  49 53 43 20 54 49 54 4C 45 22 2C 31 34 2C 31 36    ISC TITLE",14,16
00C160:  2C 30 0D 0A 2E 6F 70 65 6E 74 78 09 64 62 20 22    ,0...opentx.db "
00C170:  20 20 20 22 2C 31 35 2C 31 31 2C 22 4F 50 45 4E       ",15,11,"OPEN
00C180:  22 2C 31 34 2C 31 36 2C 20 33 31 2C 33 33 2C 39    ",14,16, 31,33,9
00C190:  36 2C 22 45 6E 74 65 72 20 66 69 6C 65 6E 61 6D    6,"Enter filenam
00C1A0:  65 22 2C 30 0D 0A 2E 73 61 76 65 74 78 09 64 62    e",0...savetx.db
00C1B0:  20 22 20 20 20 22 2C 31 35 2C 31 31 2C 22 53 41     "   ",15,11,"SA
00C1C0:  56 45 22 2C 31 34 2C 31 36 2C 20 33 31 2C 33 33    VE",14,16, 31,33
00C1D0:  2C 39 36 2C 22 45 6E 74 65 72 20 66 69 6C 65 6E    ,96,"Enter filen
00C1E0:  61 6D 65 22 2C 30 0D 0A 2E 67 6F 74 6F 74 78 09    ame",0...gototx.
00C1F0:  64 62 20 22 53 65 6C 65 63 74 20 64 69 73 63 3A    db "Select disc:
00C200:  74 74 6F 6D 20 6C 69 6E 65 0D 0A 2E 63 6F 6C 6F    ttom line...colo
00C210:  6F 70 09 20 6C 64 20 61 2C 37 35 09 09 09 09 3B    op. ld a,75....;
00C220:  20 6F 75 74 65 72 20 6C 6F 6F 70 0D 0A 2E 63 75     outer loop...cu
00C230:  6C 6F 6F 70 09 20 6C 64 20 28 68 6C 29 2C 64 3A    loop. ld (hl),d:
00C240:  20 69 6E 63 20 68 6C 3A 20 64 65 63 20 61 3A 20     inc hl: dec a: 
00C250:  6A 70 20 6E 7A 2C 63 75 6C 6F 6F 70 09 3B 20 69    jp nz,culoop.; i
00C260:  6E 6E 65 72 20 6C 6F 6F 70 0D 0A 09 20 63 61 6C    nner loop... cal
00C270:  6C 20 6E 6C 69 6E 65 3A 20 64 65 63 20 65 3A 20    l nline: dec e: 
00C280:  6A 70 20 6E 7A 2C 63 6F 6C 6F 6F 70 09 3B 20 7C    jp nz,coloop.; |
00C290:  0D 0A 0D 0A 09 70 6F 70 20 61 66 3A 20 63 61 6C    .....pop af: cal
00C2A0:  6C 20 26 42 39 30 43 3A 20 72 65 74 09 09 09 3B    l &B90C: ret...;
00C2B0:  52 65 73 74 6F 72 65 20 52 4F 4D 20 73 74 61 74    Restore ROM stat
00C2C0:  65 0D 0A 0D 0A 09 3B 2D 2D 2D 20 73 75 62 73 09    e.....;--- subs.
00C2D0:  4E 65 78 74 20 73 63 72 65 65 6E 20 6C 69 6E 65    Next screen line
00C2E0:  20 61 66 74 65 72 20 37 35 20 61 64 64 65 64 0D     after 75 added.
00C2F0:  0A 0D 0A 2E 6E 6C 69 6E 65 09 6C 64 20 62 63 2C    ....nline.ld bc,
00C300:  26 37 42 35 20 3A 20 61 64 64 20 68 6C 2C 62 63    &7B5 : add hl,bc
00C310:  3A 20 72 65 74 20 6E 63 0D 0A 09 6C 64 20 62 63    : ret nc...ld bc
00C320:  2C 26 43 30 35 30 3A 20 61 64 64 20 68 6C 2C 62    ,&C050: add hl,b
00C330:  63 3A 20 72 65 74 0D 0A 0D 0A 0D 0A 0D 0A 09 3B    c: ret.........;
00C340:  2A 2A 2A 20 52 4F 55 54 09 53 63 72 6F 6C 6C 20    *** ROUT.Scroll 
00C350:  66 69 6C 65 20 63 61 72 64 20 64 6F 77 6E 20 28    file card down (
00C360:  63 6C 69 63 6B 65 64 20 6F 6E 20 75 70 20 61 72    clicked on up ar
00C370:  72 6F 77 29 0D 0A 0D 0A 2E 66 63 5F 64 6E 09 6C    row).....fc_dn.l
00C380:  64 20 61 2C 28 63 75 72 64 69 72 29 3A 20 6F 72    d a,(curdir): or
00C390:  20 61 3A 20 6A 70 20 7A 2C 6D 6F 75 73 65 09 09     a: jp z,mouse..
00C3A0:  3B 51 75 69 74 20 69 66 20 61 6C 72 65 61 64 79    ;Quit if already
00C3B0:  20 61 74 20 74 6F 70 0D 0A 09 73 75 62 20 35 3A     at top...sub 5:
00C3C0:  20 6C 64 20 28 63 75 72 64 69 72 29 2C 61 0D 0A     ld (curdir),a..
00C3D0:  0D 0A 09 63 61 6C 6C 20 73 63 72 5F 64 6E 3A 20    ...call scr_dn: 
00C3E0:  6C 64 20 62 2C 35 0D 0A 09 6C 64 20 68 6C 2C 26    ld b,5...ld hl,&
00C3F0:  30 32 32 30 3A 20 6C 64 20 61 2C 28 63 75 72 64    0220: ld a,(curd
00C400:  63 61 6C 6C 20 73 62 61 72 3A 20 72 65 74 09 09    call sbar: ret..
00C410:  09 09 3B 44 69 73 70 6C 61 79 20 73 63 72 6F 6C    ..;Display scrol
00C420:  6C 20 62 61 72 0D 0A 0D 0A 09 3B 2D 2D 2D 20 73    l bar.....;--- s
00C430:  75 62 72 09 50 72 69 6E 74 20 66 69 6C 65 6E 61    ubr.Print filena
00C440:  6D 65 20 61 74 20 49 58 0D 0A 0D 0A 2E 70 66 6E    me at IX.....pfn
00C450:  61 6D 65 09 63 61 6C 6C 20 26 39 32 32 34 3A 20    ame.call &9224: 
00C460:  6C 64 20 63 2C 31 32 09 09 09 3B 4C 6F 63 61 74    ld c,12...;Locat
00C470:  65 0D 0A 09 6C 64 20 61 2C 28 69 78 2B 31 30 29    e...ld a,(ix+10)
00C480:  3A 20 61 6E 64 20 31 32 38 3A 20 63 61 6C 6C 20    : and 128: call 
00C490:  26 39 32 31 32 09 3B 44 69 6D 20 69 66 20 73 79    &9212.;Dim if sy
00C4A0:  73 74 65 6D 20 66 69 6C 65 0D 0A 2E 70 66 6C 6F    stem file...pflo
00C4B0:  6F 70 09 6C 64 20 61 2C 28 69 78 29 3A 20 61 6E    op.ld a,(ix): an
00C4C0:  64 20 31 32 37 3A 20 69 6E 63 20 69 78 09 09 3B    d 127: inc ix..;
00C4D0:  50 72 69 6E 74 20 66 69 6C 65 6E 61 6D 65 0D 0A    Print filename..
00C4E0:  09 63 61 6C 6C 20 26 39 32 30 30 3A 20 64 65 63    .call &9200: dec
00C4F0:  20 63 3A 20 6A 72 20 6E 7A 2C 70 66 6C 6F 6F 70     c: jr nz,pfloop
00C500:  09 09 3B 20 7C 0D 0A 09 6C 64 20 61 2C 28 69 78    ..; |...ld a,(ix
00C510:  2D 31 29 3A 20 61 6E 64 20 31 32 38 3A 20 6A 72    -1): and 128: jr
00C520:  20 7A 2C 6E 6F 74 5F 72 6F 09 3B 52 65 61 64 20     z,not_ro.;Read 
00C530:  6F 6E 6C 79 3F 0D 0A 09 6C 64 20 61 2C 22 2A 22    only?...ld a,"*"
00C540:  3A 20 63 61 6C 6C 20 26 39 32 30 30 09 09 09 3B    : call &9200...;
00C550:  20 7C 20 69 66 20 73 6F 2C 20 70 72 69 6E 74 20     | if so, print 
00C560:  22 2A 22 0D 0A 2E 6E 6F 74 5F 72 6F 09 78 6F 72    "*"...not_ro.xor
00C570:  20 61 3A 20 63 61 6C 6C 20 26 39 32 31 32 3A 20     a: call &9212: 
00C580:  72 65 74 09 09 09 3B 4E 6F 74 20 64 69 6D 2C 20    ret...;Not dim, 
00C590:  61 6E 64 20 72 65 74 75 72 6E 0D 0A 0D 0A 09 3B    and return.....;
00C5A0:  2D 2D 2D 20 73 75 62 72 09 41 64 76 61 6E 63 65    --- subr.Advance
00C5B0:  20 63 75 72 73 6F 72 20 70 6F 73 69 74 69 6F 6E     cursor position
00C5C0:  20 28 63 61 72 72 79 20 69 66 20 6F 6B 2C 20 4E     (carry if ok, N
00C5D0:  43 20 69 66 20 66 75 6C 6C 20 75 70 29 0D 0A 0D    C if full up)...
00C5E0:  0A 2E 61 64 76 61 6E 63 09 6C 64 20 61 2C 31 35    ..advanc.ld a,15
00C5F0:  3A 20 61 64 64 20 68 3A 20 6C 64 20 68 2C 61 0D    : add h: ld h,a.
00C600:  69 72 29 3A 20 6A 70 20 66 63 5F 72 6F 77 0D 0A    ir): jp fc_row..
00C610:  0D 0A 09 3B 2D 2D 2D 20 73 75 62 72 09 53 63 72    ...;--- subr.Scr
00C620:  6F 6C 6C 20 77 68 6F 6C 65 20 64 69 73 70 6C 61    oll whole displa
00C630:  79 20 64 6F 77 6E 20 62 79 20 39 20 6C 69 6E 65    y down by 9 line
00C640:  73 0D 0A 0D 0A 2E 73 63 72 5F 64 6E 09 63 61 6C    s.....scr_dn.cal
00C650:  6C 20 26 42 39 30 33 0D 0A 09 70 75 73 68 20 61    l &B903...push a
00C660:  66 0D 0A 09 20 6C 64 20 68 6C 2C 26 43 37 33 31    f... ld hl,&C731
00C670:  3A 20 6C 64 20 61 2C 31 35 33 0D 0A 09 20 6C 64    : ld a,153... ld
00C680:  20 64 65 2C 26 43 46 38 31 0D 0A 0D 0A 2E 73 63     de,&CF81.....sc
00C690:  72 5F 64 6C 09 20 6C 64 20 62 63 2C 37 35 20 20    r_dl. ld bc,75  
00C6A0:  3A 20 6C 64 69 72 09 09 09 3B 43 6F 70 79 20 62    : ldir...;Copy b
00C6B0:  79 74 65 73 0D 0A 09 20 63 61 6C 6C 20 70 6C 69    ytes... call pli
00C6C0:  6E 65 3A 20 65 78 20 64 65 2C 68 6C 09 09 09 3B    ne: ex de,hl...;
00C6D0:  20 6E 65 78 74 20 73 6F 75 72 63 65 20 6C 69 6E     next source lin
00C6E0:  65 0D 0A 09 20 63 61 6C 6C 20 70 6C 69 6E 65 3A    e... call pline:
00C6F0:  20 65 78 20 64 65 2C 68 6C 09 09 09 3B 20 6E 65     ex de,hl...; ne
00C700:  78 74 20 64 65 73 74 69 6E 61 74 69 6F 6E 20 6C    xt destination l
00C710:  69 6E 65 0D 0A 09 20 64 65 63 20 61 3A 20 6A 70    ine... dec a: jp
00C720:  20 6E 7A 2C 73 63 72 5F 64 6C 0D 0A 0D 0A 09 20     nz,scr_dl..... 
00C730:  65 78 20 64 65 2C 68 6C 3A 20 6C 64 20 64 65 2C    ex de,hl: ld de,
00C740:  38 09 09 09 3B 42 6C 61 6E 6B 20 74 6F 70 20 6C    8...;Blank top l
00C750:  69 6E 65 0D 0A 2E 64 6F 6C 6F 6F 70 09 20 6C 64    ine...doloop. ld
00C760:  20 61 2C 37 35 09 09 09 09 3B 20 6F 75 74 65 72     a,75....; outer
00C770:  20 6C 6F 6F 70 0D 0A 2E 64 75 6C 6F 6F 70 09 20     loop...duloop. 
00C780:  6C 64 20 28 68 6C 29 2C 64 3A 20 69 6E 63 20 68    ld (hl),d: inc h
00C790:  6C 3A 20 64 65 63 20 61 3A 20 6A 70 20 6E 7A 2C    l: dec a: jp nz,
00C7A0:  64 75 6C 6F 6F 70 09 3B 20 69 6E 6E 65 72 20 6C    duloop.; inner l
00C7B0:  6F 6F 70 0D 0A 09 20 63 61 6C 6C 20 70 6C 69 6E    oop... call plin
00C7C0:  65 3A 20 64 65 63 20 65 3A 20 6A 70 20 6E 7A 2C    e: dec e: jp nz,
00C7D0:  64 6F 6C 6F 6F 70 09 3B 20 7C 0D 0A 0D 0A 09 70    doloop.; |.....p
00C7E0:  6F 70 20 61 66 3A 20 63 61 6C 6C 20 26 42 39 30    op af: call &B90
00C7F0:  43 3A 20 72 65 74 09 09 09 3B 52 65 73 74 6F 72    C: ret...;Restor
00C800:  0A 09 63 70 20 37 37 20 3A 20 72 65 74 20 6E 7A    ..cp 77 : ret nz
00C810:  3A 20 6C 64 20 68 2C 32 0D 0A 09 6C 64 20 61 2C    : ld h,2...ld a,
00C820:  39 20 3A 20 61 64 64 20 6C 3A 20 6C 64 20 6C 2C    9 : add l: ld l,
00C830:  61 0D 0A 09 63 70 20 31 39 34 3A 20 72 65 74 0D    a...cp 194: ret.
00C840:  0A 0D 0A 09 3B 2D 2D 2D 20 73 75 62 72 09 44 69    ....;--- subr.Di
00C850:  73 70 6C 61 79 20 73 63 72 6F 6C 6C 20 62 61 72    splay scroll bar
00C860:  0D 0A 0D 0A 2E 73 62 61 72 09 6C 64 20 69 78 2C    .....sbar.ld ix,
00C870:  28 77 68 6C 64 69 72 29 3A 20 6C 64 20 63 2C 28    (whldir): ld c,(
00C880:  69 78 2D 31 37 29 09 09 3B 47 65 74 20 74 6F 74    ix-17)..;Get tot
00C890:  61 6C 20 6E 75 6D 62 65 72 20 6F 66 20 72 65 63    al number of rec
00C8A0:  6F 72 64 73 0D 0A 09 6C 64 20 61 20 2C 28 63 75    ords...ld a ,(cu
00C8B0:  72 64 69 72 29 3A 20 6C 64 20 62 2C 61 09 09 09    rdir): ld b,a...
00C8C0:  3B 47 65 74 20 63 75 72 72 65 6E 74 20 72 65 63    ;Get current rec
00C8D0:  6F 72 64 0D 0A 09 6C 64 20 68 2C 37 38 3A 20 6C    ord...ld h,78: l
00C8E0:  64 20 6C 2C 33 37 09 09 09 3B 44 69 73 70 6C 61    d l,37...;Displa
00C8F0:  79 20 73 63 72 6F 6C 6C 20 62 61 72 0D 0A 09 6C    y scroll bar...l
00C900:  64 20 64 2C 38 35 3A 20 6C 64 20 65 2C 31 35 32    d d,85: ld e,152
00C910:  3A 20 6A 70 20 26 39 32 46 39 09 09 3B 20 7C 0D    : jp &92F9..; |.
00C920:  0A 0D 0A 0D 0A 09 3B 2A 2A 2A 20 52 4F 55 54 09    ......;*** ROUT.
00C930:  50 72 69 6E 74 20 66 6F 72 6D 61 74 20 28 41 20    Print format (A 
00C940:  3D 20 31 2D 38 29 0D 0A 0D 0A 2E 70 66 6F 72 6D    = 1-8).....pform
00C950:  09 6C 64 20 68 6C 2C 66 5F 64 61 74 61 3A 20 64    .ld hl,f_data: d
00C960:  65 63 20 61 3A 20 72 65 74 20 7A 0D 0A 09 6C 64    ec a: ret z...ld
00C970:  20 68 6C 2C 66 5F 63 70 6D 20 3A 20 64 65 63 20     hl,f_cpm : dec 
00C980:  61 3A 20 72 65 74 20 7A 0D 0A 09 6C 64 20 68 6C    a: ret z...ld hl
00C990:  2C 66 5F 64 31 20 20 3A 20 64 65 63 20 61 3A 20    ,f_d1  : dec a: 
00C9A0:  72 65 74 20 7A 0D 0A 09 6C 64 20 68 6C 2C 66 5F    ret z...ld hl,f_
00C9B0:  64 31 30 20 3A 20 64 65 63 20 61 3A 20 72 65 74    d10 : dec a: ret
00C9C0:  20 7A 0D 0A 09 6C 64 20 68 6C 2C 66 5F 64 32 20     z...ld hl,f_d2 
00C9D0:  20 3A 20 64 65 63 20 61 3A 20 72 65 74 20 7A 0D     : dec a: ret z.
00C9E0:  0A 09 6C 64 20 68 6C 2C 66 5F 64 32 30 20 3A 20    ..ld hl,f_d20 : 
00C9F0:  64 65 63 20 61 3A 20 72 65 74 20 7A 0D 0A 09 6C    dec a: ret z...l
00CA00:  65 20 52 4F 4D 20 73 74 61 74 65 0D 0A 0D 0A 09    e ROM state.....
00CA10:  3B 2D 2D 2D 20 73 75 62 73 09 50 72 65 76 69 6F    ;--- subs.Previo
00CA20:  75 73 20 73 63 72 65 65 6E 20 6C 69 6E 65 20 61    us screen line a
00CA30:  66 74 65 72 20 37 35 20 61 64 64 65 64 0D 0A 0D    fter 75 added...
00CA40:  0A 2E 70 6C 69 6E 65 09 6C 64 20 62 63 2C 26 46    ..pline.ld bc,&F
00CA50:  37 42 35 3A 20 61 64 64 20 68 6C 2C 62 63 3A 20    7B5: add hl,bc: 
00CA60:  62 69 74 20 36 2C 68 3A 20 72 65 74 20 6E 7A 0D    bit 6,h: ret nz.
00CA70:  0A 09 6C 64 20 62 63 2C 26 33 46 42 30 3A 20 61    ..ld bc,&3FB0: a
00CA80:  64 64 20 68 6C 2C 62 63 3A 20 72 65 74 0D 0A 0D    dd hl,bc: ret...
00CA90:  0A 0D 0A 09 3B 2A 2A 2A 20 53 55 42 52 09 43 68    ....;*** SUBR.Ch
00CAA0:  65 63 6B 20 6D 65 6D 6F 72 79 20 74 6F 20 73 65    eck memory to se
00CAB0:  65 20 69 66 20 77 65 27 72 65 20 6E 65 61 72 20    e if we're near 
00CAC0:  74 68 65 20 6C 69 6D 69 74 0D 0A 09 3B 09 09 72    the limit...;..r
00CAD0:  65 74 75 72 6E 73 20 43 20 69 66 20 6F 6B 2C 20    eturns C if ok, 
00CAE0:  4E 43 20 69 66 20 70 72 6F 62 6C 65 6D 61 74 69    NC if problemati
00CAF0:  63 0D 0A 0D 0A 2E 6D 65 6D 63 68 6B 09 70 75 73    c.....memchk.pus
00CB00:  68 20 64 65 3A 20 70 75 73 68 20 68 6C 0D 0A 09    h de: push hl...
00CB10:  20 6C 64 20 68 6C 2C 28 6C 61 73 74 61 64 29 3A     ld hl,(lastad):
00CB20:  20 6F 72 20 61 0D 0A 09 20 6C 64 20 64 65 2C 26     or a... ld de,&
00CB30:  37 45 30 30 3A 20 73 62 63 20 68 6C 2C 64 65 3A    7E00: sbc hl,de:
00CB40:  20 6A 72 20 63 2C 6D 65 6D 72 65 74 0D 0A 09 20     jr c,memret... 
00CB50:  6C 64 20 64 65 2C 26 30 35 30 30 3A 20 73 62 63    ld de,&0500: sbc
00CB60:  20 68 6C 2C 64 65 3A 20 6A 72 20 63 2C 6D 65 6D     hl,de: jr c,mem
00CB70:  64 6E 67 0D 0A 09 20 6C 64 20 61 2C 26 38 32 3A    dng... ld a,&82:
00CB80:  20 6C 64 20 68 6C 2C 66 75 6C 6C 74 78 3A 20 63     ld hl,fulltx: c
00CB90:  61 6C 6C 20 26 39 32 34 38 3A 20 6F 72 20 61 3A    all &9248: or a:
00CBA0:  20 6A 72 20 6D 65 6D 72 65 74 0D 0A 2E 6D 65 6D     jr memret...mem
00CBB0:  64 6E 67 09 20 6C 64 20 61 2C 26 38 32 3A 20 6C    dng. ld a,&82: l
00CBC0:  64 20 68 6C 2C 64 61 6E 67 74 78 3A 20 63 61 6C    d hl,dangtx: cal
00CBD0:  6C 20 26 39 32 34 38 3A 20 73 63 66 0D 0A 2E 6D    l &9248: scf...m
00CBE0:  65 6D 72 65 74 09 70 6F 70 20 68 6C 3A 20 70 6F    emret.pop hl: po
00CBF0:  70 20 64 65 3A 20 72 65 74 0D 0A 0D 0A 0D 0A 09    p de: ret.......
00CC00:  64 20 68 6C 2C 66 5F 70 63 77 61 3A 20 64 65 63    d hl,f_pcwa: dec
00CC10:  20 61 3A 20 72 65 74 20 7A 0D 0A 09 6C 64 20 68     a: ret z...ld h
00CC20:  6C 2C 66 5F 70 63 77 62 3A 09 20 20 20 20 20 72    l,f_pcwb:.     r
00CC30:  65 74 0D 0A 0D 0A 0D 0A 09 3B 2A 2A 2A 20 52 4F    et.......;*** RO
00CC40:  55 54 09 53 63 72 6F 6C 6C 20 66 69 6C 65 20 63    UT.Scroll file c
00CC50:  61 72 64 20 75 70 20 28 63 6C 69 63 6B 65 64 20    ard up (clicked 
00CC60:  6F 6E 20 64 6F 77 6E 20 61 72 72 6F 77 29 0D 0A    on down arrow)..
00CC70:  0D 0A 2E 66 63 5F 75 70 09 6C 64 20 61 20 2C 28    ...fc_up.ld a ,(
00CC80:  63 75 72 64 69 72 29 3A 20 6C 64 20 63 2C 61 0D    curdir): ld c,a.
00CC90:  0A 09 6C 64 20 69 78 2C 28 77 68 6C 64 69 72 29    ..ld ix,(whldir)
00CCA0:  3A 20 6C 64 20 61 2C 28 69 78 2D 31 37 29 0D 0A    : ld a,(ix-17)..
00CCB0:  09 73 75 62 20 39 30 3A 20 6A 70 20 63 2C 6D 6F    .sub 90: jp c,mo
00CCC0:  75 73 65 09 09 09 3B 51 75 69 74 20 69 66 20 6E    use...;Quit if n
00CCD0:  6F 74 20 65 76 65 6E 20 39 30 0D 0A 09 73 75 62    ot even 90...sub
00CCE0:  20 63 20 3A 20 6A 70 20 63 2C 6D 6F 75 73 65 3A     c : jp c,mouse:
00CCF0:  20 6A 70 20 7A 2C 6D 6F 75 73 65 09 09 3B 51 75     jp z,mouse..;Qu
00CD00:  69 74 20 69 66 20 74 68 65 79 27 72 65 20 61 6C    it if they're al
00CD10:  6C 20 6F 6E 20 73 63 72 65 65 6E 0D 0A 09 63 61    l on screen...ca
00CD20:  6C 6C 20 73 63 72 5F 75 70 09 09 09 09 3B 53 63    ll scr_up....;Sc
00CD30:  72 6F 6C 6C 20 64 69 73 70 6C 61 79 0D 0A 09 6C    roll display...l
00CD40:  64 20 61 2C 28 63 75 72 64 69 72 29 3A 20 61 64    d a,(curdir): ad
00CD50:  64 20 35 0D 0A 09 6C 64 20 28 63 75 72 64 69 72    d 5...ld (curdir
00CD60:  29 2C 61 3A 20 6C 64 20 63 2C 61 0D 0A 0D 0A 09    ),a: ld c,a.....
00CD70:  6C 64 20 61 2C 28 69 78 2D 31 37 29 3A 20 73 75    ld a,(ix-17): su
00CD80:  62 20 63 3A 20 73 75 62 20 38 35 3A 20 6C 64 20    b c: sub 85: ld 
00CD90:  62 2C 61 09 3B 4E 75 6D 62 65 72 20 6F 66 20 66    b,a.;Number of f
00CDA0:  69 6C 65 73 20 74 6F 20 64 69 73 70 6C 61 79 0D    iles to display.
00CDB0:  0A 0D 0A 09 6C 64 20 61 2C 28 63 75 72 64 69 72    ....ld a,(curdir
00CDC0:  29 3A 20 61 64 64 20 38 35 3A 20 6C 64 20 68 6C    ): add 85: ld hl
00CDD0:  2C 26 30 32 42 39 09 3B 46 69 6E 64 20 66 69 6C    ,&02B9.;Find fil
00CDE0:  65 6E 61 6D 65 0D 0A 2E 66 63 5F 72 6F 77 09 70    ename...fc_row.p
00CDF0:  75 73 68 20 68 6C 09 09 09 09 09 3B 20 7C 0D 0A    ush hl.....; |..
00CE00:  3B 2A 2A 2A 20 53 55 42 52 09 46 69 6E 64 20 73    ;*** SUBR.Find s
00CE10:  74 61 74 69 73 74 69 63 73 20 66 6F 72 20 63 75    tatistics for cu
00CE20:  72 72 65 6E 74 20 72 65 63 6F 72 64 0D 0A 09 3B    rrent record...;
00CE30:  09 09 6F 6E 20 72 65 74 75 72 6E 2C 20 48 4C 20    ..on return, HL 
00CE40:  63 6F 6E 74 61 69 6E 73 20 61 64 64 72 65 73 73    contains address
00CE50:  2C 20 44 45 20 63 6F 6E 74 61 69 6E 73 20 6C 65    , DE contains le
00CE60:  6E 67 74 68 0D 0A 0D 0A 2E 73 74 61 74 73 09 6C    ngth.....stats.l
00CE70:  64 20 61 2C 28 63 75 72 72 65 63 29 0D 0A 2E 73    d a,(currec)...s
00CE80:  74 61 74 73 32 09 63 61 6C 6C 20 72 65 63 61 64    tats2.call recad
00CE90:  64 0D 0A 09 70 75 73 68 20 68 6C 0D 0A 09 20 6C    d...push hl... l
00CEA0:  64 20 64 65 2C 33 32 20 3A 20 61 64 64 20 68 6C    d de,32 : add hl
00CEB0:  2C 64 65 3A 20 6C 64 20 6C 2C 28 68 6C 29 3A 20    ,de: ld l,(hl): 
00CEC0:  6C 64 20 68 2C 30 0D 0A 09 20 61 64 64 20 68 6C    ld h,0... add hl
00CED0:  2C 68 6C 3A 20 61 64 64 20 68 6C 2C 68 6C 3A 20    ,hl: add hl,hl: 
00CEE0:  6C 64 20 65 2C 6C 20 20 20 3A 20 6C 64 20 64 2C    ld e,l   : ld d,
00CEF0:  68 0D 0A 09 20 61 64 64 20 68 6C 2C 68 6C 3A 20    h... add hl,hl: 
00CF00:  61 64 64 20 68 6C 2C 64 65 3A 20 6C 64 20 64 65    add hl,de: ld de
00CF10:  2C 34 39 20 3A 20 61 64 64 20 68 6C 2C 64 65 0D    ,49 : add hl,de.
00CF20:  0A 09 20 65 78 20 64 65 2C 68 6C 0D 0A 09 70 6F    .. ex de,hl...po
00CF30:  70 20 68 6C 3A 20 72 65 74 0D 0A 0D 0A 0D 0A 0D    p hl: ret.......
00CF40:  0A 09 3B 2A 2A 2A 20 53 55 42 52 09 46 69 6E 64    ..;*** SUBR.Find
00CF50:  20 61 64 64 72 65 73 73 20 6F 66 20 72 65 63 6F     address of reco
00CF60:  72 64 20 41 20 69 6E 74 6F 20 48 4C 20 28 63 6F    rd A into HL (co
00CF70:  72 72 75 70 74 73 20 44 45 29 0D 0A 0D 0A 2E 72    rrupts DE).....r
00CF80:  65 63 61 64 64 09 6C 64 20 68 6C 2C 64 69 73 63    ecadd.ld hl,disc
00CF90:  31 0D 0A 2E 72 65 63 6C 70 09 6F 72 20 61 3A 20    1...reclp.or a: 
00CFA0:  72 65 74 20 7A 0D 0A 0D 0A 09 70 75 73 68 20 68    ret z.....push h
00CFB0:  6C 0D 0A 09 20 6C 64 20 64 65 2C 33 32 20 3A 20    l... ld de,32 : 
00CFC0:  61 64 64 20 68 6C 2C 64 65 3A 20 6C 64 20 6C 2C    add hl,de: ld l,
00CFD0:  28 68 6C 29 3A 20 6C 64 20 68 2C 30 0D 0A 09 20    (hl): ld h,0... 
00CFE0:  61 64 64 20 68 6C 2C 68 6C 3A 20 61 64 64 20 68    add hl,hl: add h
00CFF0:  6C 2C 68 6C 3A 20 6C 64 20 65 2C 6C 20 20 20 3A    l,hl: ld e,l   :
00D000:  09 20 6C 64 20 6C 2C 61 3A 20 6C 64 20 68 2C 30    . ld l,a: ld h,0
00D010:  3A 20 61 64 64 20 68 6C 2C 68 6C 09 09 3B 20 7C    : add hl,hl..; |
00D020:  0D 0A 09 20 61 64 64 20 68 6C 2C 68 6C 3A 20 6C    ... add hl,hl: l
00D030:  64 20 64 2C 68 3A 20 6C 64 20 65 2C 6C 3A 20 61    d d,h: ld e,l: a
00D040:  64 64 20 68 6C 2C 68 6C 09 3B 20 7C 0D 0A 09 20    dd hl,hl.; |... 
00D050:  61 64 64 20 68 6C 2C 64 65 3A 20 6C 64 20 64 65    add hl,de: ld de
00D060:  2C 28 77 68 6C 64 69 72 29 3A 20 61 64 64 20 68    ,(whldir): add h
00D070:  6C 2C 64 65 09 3B 20 7C 0D 0A 09 20 70 75 73 68    l,de.; |... push
00D080:  20 68 6C 3A 20 70 6F 70 20 69 78 09 09 09 3B 20     hl: pop ix...; 
00D090:  7C 0D 0A 09 70 6F 70 20 68 6C 3A 20 63 61 6C 6C    |...pop hl: call
00D0A0:  20 64 69 73 70 6C 70 3A 20 6A 70 20 6D 6E 63 0D     displp: jp mnc.
00D0B0:  0A 0D 0A 0D 0A 09 3B 2D 2D 2D 20 73 75 62 72 09    ......;--- subr.
00D0C0:  53 63 72 6F 6C 6C 20 77 68 6F 6C 65 20 64 69 73    Scroll whole dis
00D0D0:  70 6C 61 79 20 75 70 20 62 79 20 39 20 6C 69 6E    play up by 9 lin
00D0E0:  65 73 0D 0A 0D 0A 2E 73 63 72 5F 75 70 09 63 61    es.....scr_up.ca
00D0F0:  6C 6C 20 26 42 39 30 33 09 09 09 09 3B 55 70 70    ll &B903....;Upp
00D100:  65 72 20 52 4F 4D 20 6F 66 66 0D 0A 09 70 75 73    er ROM off...pus
00D110:  68 20 61 66 0D 0A 09 20 6C 64 20 64 65 2C 26 43    h af... ld de,&C
00D120:  31 34 31 3A 20 6C 64 20 61 2C 31 35 33 0D 0A 09    141: ld a,153...
00D130:  20 6C 64 20 68 6C 2C 26 43 39 39 31 0D 0A 0D 0A     ld hl,&C991....
00D140:  2E 73 63 72 5F 75 6C 09 20 6C 64 20 62 63 2C 37    .scr_ul. ld bc,7
00D150:  35 20 20 3A 20 6C 64 69 72 09 09 09 3B 43 6F 70    5  : ldir...;Cop
00D160:  79 20 62 79 74 65 73 0D 0A 09 20 63 61 6C 6C 20    y bytes... call 
00D170:  6E 6C 69 6E 65 3A 20 65 78 20 64 65 2C 68 6C 09    nline: ex de,hl.
00D180:  09 09 3B 20 6E 65 78 74 20 73 6F 75 72 63 65 20    ..; next source 
00D190:  6C 69 6E 65 0D 0A 09 20 63 61 6C 6C 20 6E 6C 69    line... call nli
00D1A0:  6E 65 3A 20 65 78 20 64 65 2C 68 6C 09 09 09 3B    ne: ex de,hl...;
00D1B0:  20 6E 65 78 74 20 64 65 73 74 69 6E 61 74 69 6F     next destinatio
00D1C0:  6E 20 6C 69 6E 65 0D 0A 09 20 64 65 63 20 61 3A    n line... dec a:
00D1D0:  20 6A 70 20 6E 7A 2C 73 63 72 5F 75 6C 0D 0A 0D     jp nz,scr_ul...
00D1E0:  0A 09 20 65 78 20 64 65 2C 68 6C 3A 20 6C 64 20    .. ex de,hl: ld 
00D1F0:  64 65 2C 38 09 09 09 3B 42 6C 61 6E 6B 20 62 6F    de,8...;Blank bo
00D200:  54 72 61 63 6B 2D 49 6E 66 6F 0D 0A 00 00 00 00    Track-Info......
00D210:  0B 00 01 00 02 09 4E E5 0B 00 C3 02 00 00 00 02    ......N.........
00D220:  0B 00 C8 02 00 00 00 02 0B 00 C4 02 00 00 00 02    ................
00D230:  0B 00 C9 02 00 00 00 02 0B 00 C5 02 00 00 00 02    ................
00D240:  0B 00 C1 02 00 00 00 02 0B 00 C6 02 00 00 00 02    ................
00D250:  0B 00 C2 02 00 00 00 02 0B 00 C7 02 00 00 00 02    ................
00D260:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
00D270:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
00D280:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
00D290:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
00D2A0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
00D2B0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
00D2C0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
00D2D0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
00D2E0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
00D2F0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
00D300:  64 20 73 74 61 72 74 20 61 20 6E 65 77 20 66 69    d start a new fi
00D310:  6C 65 2E 22 2C 30 0D 0A 0D 0A 2E 66 5F 64 61 74    le.",0.....f_dat
00D320:  61 09 64 62 20 22 44 61 74 61 22 2C 30 0D 0A 2E    a.db "Data",0...
00D330:  66 5F 63 70 6D 09 64 62 20 22 43 50 2F 4D 22 2C    f_cpm.db "CP/M",
00D340:  30 0D 0A 2E 66 5F 64 31 09 64 62 20 22 44 31 22    0...f_d1.db "D1"
00D350:  2C 30 0D 0A 2E 66 5F 64 31 30 09 64 62 20 22 44    ,0...f_d10.db "D
00D360:  31 30 22 2C 30 0D 0A 2E 66 5F 64 32 09 64 62 20    10",0...f_d2.db 
00D370:  22 44 32 22 2C 30 0D 0A 2E 66 5F 64 32 30 09 64    "D2",0...f_d20.d
00D380:  62 20 22 44 32 30 22 2C 30 0D 0A 2E 66 5F 70 63    b "D20",0...f_pc
00D390:  77 61 09 64 62 20 22 50 43 57 20 31 38 30 4B 22    wa.db "PCW 180K"
00D3A0:  2C 30 0D 0A 2E 66 5F 70 63 77 62 09 64 62 20 22    ,0...f_pcwb.db "
00D3B0:  50 43 57 20 37 32 30 4B 22 2C 30 0D 0A 2E 66 5F    PCW 720K",0...f_
00D3C0:  66 6F 72 6D 09 64 62 20 22 20 66 6F 72 6D 61 74    form.db " format
00D3D0:  2C 20 22 2C 30 0D 0A 0D 0A 09 3B 2A 2A 2A 20 44    , ",0.....;*** D
00D3E0:  41 54 41 09 4D 65 6E 75 20 74 65 78 74 0D 0A 0D    ATA.Menu text...
00D3F0:  0A 2E 6D 62 61 72 09 64 62 20 22 46 69 6C 65 20    ..mbar.db "File 
00D400:  20 20 20 44 69 73 63 20 20 20 20 53 65 61 72 63       Disc    Searc
00D410:  68 20 20 20 20 41 72 63 68 69 76 65 20 20 20 20    h    Archive    
00D420:  20 20 20 20 20 20 20 20 20 20 20 76 31 2E 31 31               v1.11
00D430:  20 22 2C 31 33 30 2C 22 20 52 69 63 68 61 72 64     ",130," Richard
00D440:  20 46 61 69 72 68 75 72 73 74 22 2C 30 0D 0A 0D     Fairhurst",0...
00D450:  0A 0D 0A 2E 6D 66 69 6C 65 09 64 62 20 31 2C 39    ....mfile.db 1,9
00D460:  2C 20 31 34 2C 20 36 0D 0A 09 64 62 20 31 2C 22    , 14, 6...db 1,"
00D470:  4F 70 65 6E 20 64 61 74 61 62 61 73 65 22 2C 30    Open database",0
00D480:  0D 0A 09 64 62 20 31 2C 22 53 61 76 65 20 64 61    ...db 1,"Save da
00D490:  74 61 62 61 73 65 22 2C 30 0D 0A 09 64 62 20 22    tabase",0...db "
00D4A0:  53 61 76 65 20 61 73 20 41 53 43 49 49 22 2C 30    Save as ASCII",0
00D4B0:  0D 0A 09 64 62 20 22 50 72 69 6E 74 20 64 61 74    ...db "Print dat
00D4C0:  61 62 61 73 65 22 2C 30 0D 0A 09 64 62 20 22 2D    abase",0...db "-
00D4D0:  22 2C 30 0D 0A 09 64 62 20 31 2C 22 51 75 69 74    ",0...db 1,"Quit
00D4E0:  22 2C 30 0D 0A 2E 69 66 69 6C 65 09 64 73 20 37    ",0...ifile.ds 7
00D4F0:  0D 0A 0D 0A 2E 6D 64 69 73 63 09 64 62 20 39 2C    .....mdisc.db 9,
00D500:  0D 0A 09 3B 54 68 65 20 41 41 20 54 6F 6F 6C 6B    ...;The AA Toolk
00D510:  69 74 20 76 31 2E 30 0D 0A 09 3B 28 63 29 20 31    it v1.0...;(c) 1
00D520:  39 39 34 20 43 68 61 52 6C 65 79 54 72 6F 6E 69    994 ChaRleyTroni
00D530:  43 20 6F 66 20 44 69 73 63 6F 76 65 72 79 0D 0A    C of Discovery..
00D540:  0D 0A 09 3B 61 20 52 65 61 6C 57 6F 72 6C 64 20    ...;a RealWorld 
00D550:  43 6F 64 69 6E 67 20 70 72 6F 64 75 63 74 69 6F    Coding productio
00D560:  6E 0D 0A 09 3B 66 6F 72 20 52 6F 62 6F 74 20 50    n...;for Robot P
00D570:  44 20 61 6E 64 20 41 6D 73 74 72 61 64 20 41 63    D and Amstrad Ac
00D580:  74 69 6F 6E 0D 0A 0D 0A 09 6F 72 67 20 26 38 30    tion.....org &80
00D590:  30 30 0D 0A 09 6E 6F 6C 69 73 74 0D 0A 09 77 72    00...nolist...wr
00D5A0:  69 74 65 20 22 74 6F 6F 6C 6B 69 74 2E 72 73 78    ite "toolkit.rsx
00D5B0:  22 0D 0A 0D 0A 09 3B 2A 2A 2A 20 52 4F 55 54 09    ".....;*** ROUT.
00D5C0:  49 6E 69 74 69 61 6C 69 73 61 74 69 6F 6E 0D 0A    Initialisation..
00D5D0:  0D 0A 09 6C 64 20 62 63 2C 63 6F 6D 5F 74 0D 0A    ...ld bc,com_t..
00D5E0:  09 6C 64 20 68 6C 2C 77 6B 73 70 0D 0A 09 63 61    .ld hl,wksp...ca
00D5F0:  6C 6C 20 26 42 43 44 31 0D 0A 0D 0A 09 63 61 6C    ll &BCD1.....cal
00D600:  6C 20 66 6E 64 64 73 63 3A 20 6A 72 20 6E 7A 2C    l fnddsc: jr nz,
00D610:  69 73 64 69 73 63 09 3B 44 69 73 63 20 64 72 69    isdisc.;Disc dri
00D620:  76 65 20 63 6F 6E 6E 65 63 74 65 64 3F 0D 0A 09    ve connected?...
00D630:  78 6F 72 20 61 3A 20 6C 64 20 28 64 5F 6F 6E 6C    xor a: ld (d_onl
00D640:  79 29 2C 61 3A 20 72 65 74 09 3B 49 66 20 6E 6F    y),a: ret.;If no
00D650:  74 2C 20 64 69 73 61 62 6C 65 20 64 69 73 63 20    t, disable disc 
00D660:  64 72 69 76 65 20 63 6F 6D 6D 61 6E 64 73 0D 0A    drive commands..
00D670:  2E 69 73 64 69 73 63 09 6C 64 20 68 6C 2C 72 73    .isdisc.ld hl,rs
00D680:  63 72 73 78 3A 20 63 61 6C 6C 20 26 42 43 44 34    crsx: call &BCD4
00D690:  3A 20 6C 64 20 61 2C 63 3A 20 6C 64 20 28 72 73    : ld a,c: ld (rs
00D6A0:  63 66 61 72 29 2C 68 6C 3A 20 6C 64 20 28 72 73    cfar),hl: ld (rs
00D6B0:  63 66 61 72 2B 32 29 2C 61 0D 0A 09 6C 64 20 68    cfar+2),a...ld h
00D6C0:  6C 2C 77 73 63 72 73 78 3A 20 63 61 6C 6C 20 26    l,wscrsx: call &
00D6D0:  42 43 44 34 3A 20 6C 64 20 61 2C 63 3A 20 6C 64    BCD4: ld a,c: ld
00D6E0:  20 28 77 73 63 66 61 72 29 2C 68 6C 3A 20 6C 64     (wscfar),hl: ld
00D6F0:  20 28 77 73 63 66 61 72 2B 32 29 2C 61 0D 0A 09     (wscfar+2),a...
00D700:  39 2C 20 31 35 2C 20 38 0D 0A 09 64 62 20 31 2C    9, 15, 8...db 1,
00D710:  22 4C 6F 67 20 69 6E 20 6E 65 77 20 64 69 73 63    "Log in new disc
00D720:  22 2C 30 0D 0A 09 64 62 20 31 2C 22 55 70 64 61    ",0...db 1,"Upda
00D730:  74 65 20 64 69 73 63 22 2C 30 0D 0A 09 64 62 20    te disc",0...db 
00D740:  22 2D 22 2C 30 0D 0A 09 64 62 20 31 2C 22 50 72    "-",0...db 1,"Pr
00D750:  69 6E 74 20 64 69 73 63 22 2C 30 0D 0A 09 64 62    int disc",0...db
00D760:  20 31 2C 22 47 6F 20 74 6F 20 64 69 73 63 22 2C     1,"Go to disc",
00D770:  30 0D 0A 09 64 62 20 22 2D 22 2C 30 0D 0A 09 64    0...db "-",0...d
00D780:  62 20 22 44 72 69 76 65 20 22 2C 31 2C 22 41 22    b "Drive ",1,"A"
00D790:  2C 30 0D 0A 09 64 62 20 22 44 72 69 76 65 20 22    ,0...db "Drive "
00D7A0:  2C 31 2C 22 42 22 2C 30 0D 0A 2E 69 64 69 73 63    ,1,"B",0...idisc
00D7B0:  09 64 73 20 31 30 0D 0A 0D 0A 2E 6D 73 65 61 72    .ds 10.....msear
00D7C0:  63 09 64 62 20 31 37 2C 39 2C 20 39 2C 20 32 0D    c.db 17,9, 9, 2.
00D7D0:  0A 09 64 62 20 31 2C 22 46 69 6E 64 20 66 69 6C    ..db 1,"Find fil
00D7E0:  65 22 2C 30 0D 0A 09 64 62 20 22 46 69 6E 64 20    e",0...db "Find 
00D7F0:  22 2C 31 2C 22 6E 65 78 74 22 2C 30 0D 0A 2E 69    ",1,"next",0...i
00D800:  73 65 61 72 63 09 64 62 20 32 2C 30 0D 0A 0D 0A    searc.db 2,0....
00D810:  2E 6D 61 72 63 68 76 09 64 62 20 32 37 2C 39 2C    .marchv.db 27,9,
00D820:  20 31 34 2C 20 35 0D 0A 09 64 62 20 31 2C 22 43     14, 5...db 1,"C
00D830:  72 65 61 74 65 20 61 72 63 68 69 76 65 22 2C 30    reate archive",0
00D840:  0D 0A 09 64 62 20 22 55 70 64 61 74 65 20 61 72    ...db "Update ar
00D850:  63 68 69 76 65 22 2C 30 0D 0A 09 64 62 20 22 44    chive",0...db "D
00D860:  65 6C 65 74 65 20 61 72 63 68 69 76 65 22 2C 30    elete archive",0
00D870:  0D 0A 09 64 62 20 22 2D 22 2C 30 0D 0A 09 64 62    ...db "-",0...db
00D880:  20 31 2C 22 52 65 73 74 6F 72 65 20 64 69 73 63     1,"Restore disc
00D890:  22 2C 30 0D 0A 2E 69 61 72 63 68 76 09 64 73 20    ",0...iarchv.ds 
00D8A0:  35 0D 0A 0D 0A 09 3B 2A 2A 2A 20 44 41 54 41 09    5.....;*** DATA.
00D8B0:  4B 65 79 20 7A 6F 6E 65 73 0D 0A 0D 0A 2E 7A 6F    Key zones.....zo
00D8C0:  6E 65 73 09 64 62 20 33 20 2C 30 2C 36 20 2C 39    nes.db 3 ,0,6 ,9
00D8D0:  0D 0A 09 64 62 20 31 31 2C 30 2C 31 34 2C 39 0D    ...db 11,0,14,9.
00D8E0:  0A 09 64 62 20 31 39 2C 30 2C 32 34 2C 39 0D 0A    ..db 19,0,24,9..
00D8F0:  09 64 62 20 32 39 2C 30 2C 33 35 2C 39 0D 0A 09    .db 29,0,35,9...
00D900:  6C 64 20 68 6C 2C 66 72 6D 72 73 78 3A 20 63 61    ld hl,frmrsx: ca
00D910:  6C 6C 20 26 42 43 44 34 3A 20 6C 64 20 61 2C 63    ll &BCD4: ld a,c
00D920:  3A 20 6C 64 20 28 66 72 6D 66 61 72 29 2C 68 6C    : ld (frmfar),hl
00D930:  3A 20 6C 64 20 28 66 72 6D 66 61 72 2B 32 29 2C    : ld (frmfar+2),
00D940:  61 0D 0A 09 72 65 74 0D 0A 0D 0A 2E 72 73 63 72    a...ret.....rscr
00D950:  73 78 09 64 62 20 26 38 34 0D 0A 2E 77 73 63 72    sx.db &84...wscr
00D960:  73 78 09 64 62 20 26 38 35 0D 0A 2E 66 72 6D 72    sx.db &85...frmr
00D970:  73 78 09 64 62 20 26 38 36 0D 0A 0D 0A 2E 72 73    sx.db &86.....rs
00D980:  63 66 61 72 09 64 73 20 33 0D 0A 2E 77 73 63 66    cfar.ds 3...wscf
00D990:  61 72 09 64 73 20 33 0D 0A 2E 66 72 6D 66 61 72    ar.ds 3...frmfar
00D9A0:  09 64 73 20 33 0D 0A 0D 0A 2E 77 6B 73 70 09 64    .ds 3.....wksp.d
00D9B0:  73 20 34 0D 0A 0D 0A 2E 63 6F 6D 5F 74 09 64 77    s 4.....com_t.dw
00D9C0:  20 6E 61 6D 65 5F 74 0D 0A 0D 0A 09 6A 70 20 63     name_t.....jp c
00D9D0:  6C 69 63 5F 69 3A 09 6A 70 20 65 78 65 63 5F 69    lic_i:.jp exec_i
00D9E0:  0D 0A 09 6A 70 20 6B 65 79 63 5F 69 3A 09 6A 70    ...jp keyc_i:.jp
00D9F0:  20 70 75 74 6B 5F 69 0D 0A 0D 0A 09 6A 70 20 65     putk_i.....jp e
00DA00:  64 69 74 5F 69 3A 09 6A 70 20 64 6F 75 62 5F 69    dit_i:.jp doub_i
00DA10:  3A 09 6A 70 20 77 72 69 74 5F 69 0D 0A 09 6A 70    :.jp writ_i...jp
00DA20:  20 6D 6F 64 65 5F 69 3A 09 6A 70 20 69 6E 6B 63     mode_i:.jp inkc
00DA30:  5F 69 3A 09 6A 70 20 62 6F 72 64 5F 69 0D 0A 0D    _i:.jp bord_i...
00DA40:  0A 09 6A 70 20 66 72 61 6D 5F 69 3A 09 6A 70 20    ..jp fram_i:.jp 
00DA50:  63 75 72 73 5F 69 3A 09 6A 70 20 67 70 61 70 5F    curs_i:.jp gpap_
00DA60:  69 0D 0A 09 6A 70 20 63 70 79 63 5F 69 3A 09 6A    i...jp cpyc_i:.j
00DA70:  70 20 63 6C 72 69 5F 69 3A 09 6A 70 20 67 70 65    p clri_i:.jp gpe
00DA80:  6E 5F 69 0D 0A 0D 0A 09 6A 70 20 6D 65 6D 72 5F    n_i.....jp memr_
00DA90:  69 3A 09 6A 70 20 64 75 6D 70 5F 69 3A 09 6A 70    i:.jp dump_i:.jp
00DAA0:  20 66 69 6E 64 5F 69 0D 0A 09 6A 70 20 62 61 6E     find_i...jp ban
00DAB0:  6B 5F 69 3A 09 6A 70 20 62 6E 6B 72 5F 69 3A 09    k_i:.jp bnkr_i:.
00DAC0:  6A 70 20 62 6E 6B 77 5F 69 0D 0A 09 6A 70 20 63    jp bnkw_i...jp c
00DAD0:  6F 70 79 5F 69 3A 09 6A 70 20 66 69 6C 6C 5F 69    opy_i:.jp fill_i
00DAE0:  3A 09 6A 70 20 63 61 6C 6C 5F 69 0D 0A 09 6A 70    :.jp call_i...jp
00DAF0:  20 73 74 61 66 5F 69 3A 09 6A 70 20 73 74 62 63     staf_i:.jp stbc
00DB00:  64 73 20 35 32 0D 0A 09 64 62 20 37 38 2C 32 37    ds 52...db 78,27
00DB10:  20 2C 37 39 2C 33 36 0D 0A 09 64 62 20 37 38 2C     ,79,36...db 78,
00DB20:  31 39 30 2C 37 39 2C 31 39 39 0D 0A 0D 0A 2E 6B    190,79,199.....k
00DB30:  7A 6F 6E 65 73 09 64 62 20 33 34 2C 35 09 09 3B    zones.db 34,5..;
00DB40:  4F 70 65 6E 0D 0A 09 64 62 20 36 30 2C 36 09 09    Open...db 60,6..
00DB50:  3B 53 61 76 65 0D 0A 09 64 62 20 36 37 2C 37 09    ;Save...db 67,7.
00DB60:  09 3B 51 75 69 74 0D 0A 09 64 62 20 33 36 2C 38    .;Quit...db 36,8
00DB70:  09 09 3B 4C 6F 67 20 69 6E 20 6E 65 77 20 64 69    ..;Log in new di
00DB80:  73 63 0D 0A 09 64 62 20 34 32 2C 39 09 09 3B 55    sc...db 42,9..;U
00DB90:  70 64 61 74 65 20 64 69 73 63 0D 0A 09 64 62 20    pdate disc...db 
00DBA0:  32 37 2C 31 30 09 3B 50 72 69 6E 74 20 64 69 73    27,10.;Print dis
00DBB0:  63 0D 0A 09 64 62 20 35 32 2C 31 31 09 3B 47 6F    c...db 52,11.;Go
00DBC0:  20 74 6F 20 64 69 73 63 0D 0A 09 64 62 20 36 39     to disc...db 69
00DBD0:  2C 31 32 09 3B 41 0D 0A 09 64 62 20 35 34 2C 31    ,12.;A...db 54,1
00DBE0:  33 09 3B 42 0D 0A 09 64 62 20 35 33 2C 31 34 09    3.;B...db 53,14.
00DBF0:  3B 46 69 6E 64 0D 0A 09 64 62 20 34 36 2C 31 35    ;Find...db 46,15
00DC00:  09 3B 66 69 6E 64 20 4E 65 78 74 0D 0A 09 64 62    .;find Next...db
00DC10:  20 36 32 2C 31 36 09 3B 43 72 65 61 74 65 20 61     62,16.;Create a
00DC20:  72 63 68 69 76 65 0D 0A 09 64 62 20 35 30 2C 31    rchive...db 50,1
00DC30:  37 09 3B 52 65 73 74 6F 72 65 20 64 69 73 63 0D    7.;Restore disc.
00DC40:  0A 0D 0A 0D 0A 09 3B 2A 2A 2A 20 56 41 52 49 09    ......;*** VARI.
00DC50:  56 61 72 69 61 62 6C 65 73 0D 0A 0D 0A 2E 77 68    Variables.....wh
00DC60:  6C 64 69 72 09 64 77 20 30 09 09 09 09 09 3B 57    ldir.dw 0.....;W
00DC70:  68 65 72 65 20 77 68 6F 6C 65 20 64 69 72 65 63    here whole direc
00DC80:  74 6F 72 79 20 73 74 61 72 74 73 0D 0A 2E 63 75    tory starts...cu
00DC90:  72 64 69 72 09 64 62 20 30 09 09 09 09 09 3B 46    rdir.db 0.....;F
00DCA0:  69 72 73 74 20 64 69 72 65 63 74 6F 72 79 20 65    irst directory e
00DCB0:  6E 74 72 79 20 6F 6E 20 73 63 72 65 65 6E 0D 0A    ntry on screen..
00DCC0:  2E 70 6E 61 6D 65 09 64 73 20 31 33 09 09 09 09    .pname.ds 13....
00DCD0:  09 3B 46 69 6E 64 20 66 69 6C 65 6E 61 6D 65 20    .;Find filename 
00DCE0:  28 70 72 65 2D 65 78 70 61 6E 64 29 0D 0A 2E 65    (pre-expand)...e
00DCF0:  6E 61 6D 65 09 64 73 20 31 32 09 09 09 09 09 3B    name.ds 12.....;
00DD00:  22 2C 30 0D 0A 0D 0A 2E 66 69 6E 64 74 78 09 64    ",0.....findtx.d
00DD10:  62 20 22 20 20 20 22 2C 31 35 2C 31 31 2C 22 46    b "   ",15,11,"F
00DD20:  49 4E 44 22 2C 31 34 2C 31 36 2C 20 33 31 2C 33    IND",14,16, 31,3
00DD30:  33 2C 39 36 2C 22 45 6E 74 65 72 20 66 69 6C 65    3,96,"Enter file
00DD40:  6E 61 6D 65 22 2C 30 0D 0A 2E 6E 66 6E 64 74 78    name",0...nfndtx
00DD50:  09 64 62 20 22 46 69 6C 65 20 6E 6F 74 20 66 6F    .db "File not fo
00DD60:  75 6E 64 2E 22 2C 30 0D 0A 0D 0A 2E 63 72 65 61    und.",0.....crea
00DD70:  74 78 09 64 62 20 22 20 20 22 2C 31 35 2C 31 31    tx.db "  ",15,11
00DD80:  2C 22 43 52 45 41 54 45 20 41 52 43 48 49 56 45    ,"CREATE ARCHIVE
00DD90:  22 2C 31 34 2C 31 36 0D 0A 09 64 62 20 33 31 2C    ",14,16...db 31,
00DDA0:  32 34 2C 39 36 2C 22 53 74 6F 72 65 20 6F 6E 20    24,96,"Store on 
00DDB0:  77 68 69 63 68 20 61 72 63 68 69 76 65 20 64 69    which archive di
00DDC0:  73 63 3F 22 2C 30 0D 0A 2E 63 72 65 32 74 78 09    sc?",0...cre2tx.
00DDD0:  64 62 20 33 31 2C 32 34 2C 31 30 34 2C 22 45 6E    db 31,24,104,"En
00DDE0:  74 65 72 20 66 69 6C 65 6E 61 6D 65 3A 20 22 2C    ter filename: ",
00DDF0:  30 0D 0A 2E 69 6E 73 74 78 74 09 64 62 20 22 49    0...instxt.db "I
00DE00:  6E 73 65 72 74 20 61 72 63 68 69 76 65 20 64 69    nsert archive di
00DE10:  73 63 20 69 6E 74 6F 20 64 72 69 76 65 20 42 22    sc into drive B"
00DE20:  2C 31 33 0D 0A 09 64 62 20 22 61 6E 64 20 66 69    ,13...db "and fi
00DE30:  6C 65 20 64 69 73 63 20 69 6E 74 6F 20 64 72 69    le disc into dri
00DE40:  76 65 20 41 2E 22 2C 30 0D 0A 2E 6F 6B 62 75 74    ve A.",0...okbut
00DE50:  09 64 62 20 33 34 2C 22 20 20 20 22 2C 31 2C 22    .db 34,"   ",1,"
00DE60:  4F 6B 22 2C 30 0D 0A 2E 63 61 6E 62 75 74 09 64    Ok",0...canbut.d
00DE70:  62 20 36 32 2C 22 20 22 2C 31 2C 22 43 61 6E 63    b 62," ",1,"Canc
00DE80:  65 6C 22 2C 30 0D 0A 2E 61 6C 72 65 74 78 09 64    el",0...alretx.d
00DE90:  62 20 22 54 68 69 73 20 64 69 73 63 20 68 61 73    b "This disc has
00DEA0:  20 61 6C 72 65 61 64 79 20 62 65 65 6E 20 61 72     already been ar
00DEB0:  63 68 69 76 65 64 2E 22 2C 31 33 0D 0A 09 64 62    chived.",13...db
00DEC0:  20 22 55 70 64 61 74 65 20 74 68 65 20 70 72 65     "Update the pre
00DED0:  76 69 6F 75 73 20 61 72 63 68 69 76 65 20 69 6E    vious archive in
00DEE0:  73 74 65 61 64 2E 22 2C 30 0D 0A 2E 77 72 6E 67    stead.",0...wrng
00DEF0:  74 78 09 64 62 20 22 59 6F 75 20 63 61 6E 20 6F    tx.db "You can o
00DF00:  46 69 6E 64 20 66 69 6C 65 6E 61 6D 65 20 28 70    Find filename (p
00DF10:  6F 73 74 2D 65 78 70 61 6E 64 29 0D 0A 2E 6C 61    ost-expand)...la
00DF20:  73 74 61 64 09 64 77 20 64 69 73 63 32 09 09 09    stad.dw disc2...
00DF30:  09 3B 46 69 72 73 74 20 66 72 65 65 20 70 6C 61    .;First free pla
00DF40:  63 65 20 69 6E 20 6D 65 6D 6F 72 79 0D 0A 2E 77    ce in memory...w
00DF50:  72 69 74 63 70 09 64 77 20 30 09 09 09 09 09 3B    ritcp.dw 0.....;
00DF60:  50 6F 73 69 74 69 6F 6E 20 69 6E 20 63 6F 6D 70    Position in comp
00DF70:  72 65 73 73 69 6F 6E 20 62 75 66 66 65 72 0D 0A    ression buffer..
00DF80:  2E 73 74 61 63 6B 73 09 64 77 20 30 09 09 09 09    .stacks.dw 0....
00DF90:  09 3B 53 74 61 63 6B 20 70 6F 73 69 74 69 6F 6E    .;Stack position
00DFA0:  20 66 6F 72 20 61 62 6F 72 74 0D 0A 0D 0A 09 3B     for abort.....;
00DFB0:  2D 2D 2D 20 76 61 72 69 09 52 65 6C 6F 61 64 65    --- vari.Reloade
00DFC0:  64 20 77 69 74 68 20 65 61 63 68 20 66 69 6C 65    d with each file
00DFD0:  0D 0A 0D 0A 2E 66 6E 61 6D 65 09 64 73 20 31 34    .....fname.ds 14
00DFE0:  09 09 09 09 09 3B 43 75 72 72 65 6E 74 20 66 69    .....;Current fi
00DFF0:  6C 65 6E 61 6D 65 0D 0A 2E 63 75 72 72 65 63 09    lename...currec.
00E000:  64 62 20 30 09 09 09 09 09 3B 43 75 72 72 65 6E    db 0.....;Curren
00E010:  74 20 72 65 63 6F 72 64 0D 0A 2E 6C 73 74 72 65    t record...lstre
00E020:  63 09 64 62 20 30 09 09 09 09 09 3B 4C 61 73 74    c.db 0.....;Last
00E030:  20 72 65 63 6F 72 64 0D 0A 0D 0A 09 3B 2A 2A 2A     record.....;***
00E040:  20 56 41 52 49 09 52 65 63 6F 72 64 73 0D 0A 0D     VARI.Records...
00E050:  0A 2E 64 69 73 63 31 09 64 62 20 22 44 45 53 20    ..disc1.db "DES 
00E060:  64 65 76 65 6C 6F 70 6D 65 6E 74 20 64 69 73 63    development disc
00E070:  22 3A 20 64 73 20 31 32 09 3B 4E 61 6D 65 0D 0A    ": ds 12.;Name..
00E080:  09 64 62 20 37 09 09 09 09 09 3B 4E 75 6D 62 65    .db 7.....;Numbe
00E090:  72 20 6F 66 20 66 69 6C 65 73 09 2B 33 32 0D 0A    r of files.+32..
00E0A0:  09 64 77 20 30 09 09 09 09 09 3B 6B 20 66 72 65    .dw 0.....;k fre
00E0B0:  65 09 09 09 2B 33 33 0D 0A 09 64 62 20 33 09 09    e...+33...db 3..
00E0C0:  09 09 09 3B 46 6F 72 6D 61 74 20 28 31 2D 38 29    ...;Format (1-8)
00E0D0:  09 09 2B 33 35 0D 0A 09 64 62 20 30 09 09 09 09    ..+35...db 0....
00E0E0:  09 3B 41 72 63 68 69 76 65 20 64 69 73 63 09 09    .;Archive disc..
00E0F0:  2B 33 36 0D 0A 09 64 73 20 31 32 09 09 09 09 09    +36...ds 12.....
00E100:  6E 6C 79 20 61 72 63 68 69 76 65 20 44 61 74 61    nly archive Data
00E110:  20 61 6E 64 20 43 50 2F 4D 20 64 69 73 63 73 2E     and CP/M discs.
00E120:  22 2C 30 0D 0A 2E 63 72 65 77 74 78 09 64 62 20    ",0...crewtx.db 
00E130:  22 43 72 65 61 74 69 6E 67 20 61 72 63 68 69 76    "Creating archiv
00E140:  65 20 61 6E 64 20 73 74 6F 72 69 6E 67 20 6F 6E    e and storing on
00E150:  20 42 2E 22 2C 30 0D 0A 0D 0A 2E 6E 6F 74 61 74     B.",0.....notat
00E160:  78 09 64 62 20 22 54 68 65 72 65 20 69 73 20 6E    x.db "There is n
00E170:  6F 20 61 72 63 68 69 76 65 20 66 6F 72 20 74 68    o archive for th
00E180:  69 73 20 64 69 73 63 2E 22 2C 30 0D 0A 2E 6E 6F    is disc.",0...no
00E190:  74 69 74 78 09 64 62 20 22 54 68 65 20 66 69 6C    titx.db "The fil
00E1A0:  65 20 68 61 73 20 62 65 65 6E 20 63 6F 72 72 75    e has been corru
00E1B0:  70 74 65 64 20 69 6E 20 73 6F 6D 65 20 77 61 79    pted in some way
00E1C0:  2E 22 2C 30 0D 0A 2E 72 65 73 74 74 78 09 64 62    .",0...resttx.db
00E1D0:  20 22 52 65 73 74 6F 72 69 6E 67 20 66 72 6F 6D     "Restoring from
00E1E0:  20 64 72 69 76 65 20 42 20 74 6F 20 64 72 69 76     drive B to driv
00E1F0:  65 20 41 2E 22 2C 30 0D 0A 0D 0A 2E 64 61 6E 67    e A.",0.....dang
00E200:  74 78 09 64 62 20 22 4D 65 6D 6F 72 79 20 69 73    tx.db "Memory is
00E210:  20 67 65 74 74 69 6E 67 20 6C 6F 77 2E 20 49 74     getting low. It
00E220:  20 6D 69 67 68 74 20 62 65 20 61 20 67 6F 6F 64     might be a good
00E230:  22 2C 31 33 0D 0A 09 64 62 20 22 69 64 65 61 20    ",13...db "idea 
00E240:  74 6F 20 73 61 76 65 20 79 6F 75 72 20 64 61 74    to save your dat
00E250:  61 62 61 73 65 20 73 6F 6F 6E 20 61 6E 64 20 73    abase soon and s
00E260:  74 61 72 74 22 2C 31 33 0D 0A 09 64 62 20 22 6F    tart",13...db "o
00E270:  6E 20 61 20 6E 65 77 20 6F 6E 65 2E 22 2C 30 0D    n a new one.",0.
00E280:  0A 0D 0A 2E 66 75 6C 6C 74 78 09 64 62 20 22 54    ....fulltx.db "T
00E290:  68 65 72 65 20 69 73 20 6E 6F 74 20 65 6E 6F 75    here is not enou
00E2A0:  67 68 20 72 6F 6F 6D 20 69 6E 20 6D 65 6D 6F 72    gh room in memor
00E2B0:  79 20 74 6F 20 63 61 72 72 79 22 2C 31 33 0D 0A    y to carry",13..
00E2C0:  09 64 62 20 22 6F 75 74 20 74 68 61 74 20 6F 70    .db "out that op
00E2D0:  65 72 61 74 69 6F 6E 2E 20 53 61 76 65 20 79 6F    eration. Save yo
00E2E0:  75 72 20 63 75 72 72 65 6E 74 20 64 61 74 61 62    ur current datab
00E2F0:  61 73 65 22 2C 31 33 0D 0A 09 64 62 20 22 61 6E    ase",13...db "an
00E300:  3B 41 72 63 68 69 76 65 20 66 69 6C 65 6E 61 6D    ;Archive filenam
00E310:  65 09 2B 33 37 0D 0A 0D 0A 09 64 62 20 22 43 41    e.+37.....db "CA
00E320:  54 20 20 20 20 20 2E 22 2C 22 42 22 2B 31 32 38    T     .","B"+128
00E330:  2C 22 49 4E 22 09 09 3B 46 69 6C 65 6E 61 6D 65    ,"IN"..;Filename
00E340:  73 09 09 2B 34 39 0D 0A 09 64 62 20 22 41 4D 53    s..+49...db "AMS
00E350:  54 52 41 44 20 2E 41 43 54 22 0D 0A 09 64 62 20    TRAD .ACT"...db 
00E360:  22 43 52 54 43 23 38 20 20 2E 20 20 20 22 0D 0A    "CRTC#8  .   "..
00E370:  09 64 62 20 22 42 54 4C 32 20 20 20 20 2E 42 22    .db "BTL2    .B"
00E380:  2C 22 49 22 2B 31 32 38 2C 22 4E 22 0D 0A 09 64    ,"I"+128,"N"...d
00E390:  62 20 22 44 49 53 43 20 20 20 20 2E 42 41 53 22    b "DISC    .BAS"
00E3A0:  0D 0A 09 64 62 20 22 48 49 50 50 59 20 20 20 2E    ...db "HIPPY   .
00E3B0:  43 4F 4D 22 0D 0A 09 64 62 20 22 57 41 4C 4C 59    COM"...db "WALLY
00E3C0:  20 20 20 2E 22 2C 22 53 22 2B 31 32 38 2C 22 50       .","S"+128,"P
00E3D0:  22 2B 31 32 38 2C 22 4C 22 0D 0A 0D 0A 0D 0A 2E    "+128,"L".......
00E3E0:  64 69 73 63 32 09 64 62 20 30 09 09 09 09 09 3B    disc2.db 0.....;
00E3F0:  4C 61 73 74 20 72 65 63 6F 72 64 0D 0A 1A 74 0D    Last record...t.
00E400:  64 62 20 30 09 09 09 09 09 3B 43 75 72 72 65 6E    db 0.....;Curren
00E410:  74 20 72 65 63 6F 72 64 0D 0A 2E 6C 73 74 72 65    t record...lstre
00E420:  63 09 64 62 20 30 09 09 09 09 09 3B 4C 61 73 74    c.db 0.....;Last
00E430:  20 72 65 63 6F 72 64 0D 0A 0D 0A 09 3B 2A 2A 2A     record.....;***
00E440:  20 56 41 52 49 09 52 65 63 6F 72 64 73 0D 0A 0D     VARI.Records...
00E450:  0A 2E 64 69 73 63 31 09 64 62 20 22 44 45 53 20    ..disc1.db "DES 
00E460:  64 65 76 65 6C 6F 70 6D 65 6E 74 20 64 69 73 63    development disc
00E470:  22 3A 20 64 73 20 31 32 09 3B 4E 61 6D 65 0D 0A    ": ds 12.;Name..
00E480:  09 64 62 20 37 09 09 09 09 09 3B 4E 75 6D 62 65    .db 7.....;Numbe
00E490:  72 20 6F 66 20 66 69 6C 65 73 09 2B 33 32 0D 0A    r of files.+32..
00E4A0:  09 64 77 20 30 09 09 09 09 09 3B 6B 20 66 72 65    .dw 0.....;k fre
00E4B0:  65 09 09 09 2B 33 33 0D 0A 09 64 62 20 33 09 09    e...+33...db 3..
00E4C0:  09 09 09 3B 46 6F 72 6D 61 74 20 28 31 2D 38 29    ...;Format (1-8)
00E4D0:  09 09 2B 33 35 0D 0A 09 64 62 20 30 09 09 09 09    ..+35...db 0....
00E4E0:  09 3B 41 72 63 68 69 76 65 20 64 69 73 63 09 09    .;Archive disc..
00E4F0:  2B 33 36 0D 0A 09 64 73 20 31 32 09 09 09 09 09    +36...ds 12.....
00E500:  54 72 61 63 6B 2D 49 6E 66 6F 0D 0A 00 00 00 00    Track-Info......
00E510:  0C 00 01 00 02 09 4E E5 0C 00 C6 02 00 00 00 02    ......N.........
00E520:  0C 00 C2 02 00 00 00 02 0C 00 C7 02 00 00 00 02    ................
00E530:  0C 00 C3 02 00 00 00 02 0C 00 C8 02 00 00 00 02    ................
00E540:  0C 00 C4 02 00 00 00 02 0C 00 C9 02 00 00 00 02    ................
00E550:  0C 00 C5 02 00 00 00 02 0C 00 C1 02 00 00 00 02    ................
00E560:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
00E570:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
00E580:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
00E590:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
00E5A0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
00E5B0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
00E5C0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
00E5D0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
00E5E0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
00E5F0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
00E600:  0A 0D 0A 09 3B 43 6F 70 79 20 73 74 72 69 6E 67    ....;Copy string
00E610:  20 74 6F 20 62 75 66 66 65 72 0D 0A 0D 0A 2E 63     to buffer.....c
00E620:  6C 69 6F 6E 65 09 6C 64 20 6C 2C 28 69 78 29 3A    lione.ld l,(ix):
00E630:  20 6C 64 20 68 2C 28 69 78 2B 31 29 0D 0A 09 6C     ld h,(ix+1)...l
00E640:  64 20 63 2C 28 68 6C 29 3A 20 69 6E 63 20 68 6C    d c,(hl): inc hl
00E650:  3A 20 6C 64 20 61 2C 63 3A 20 72 65 74 20 7A 0D    : ld a,c: ret z.
00E660:  0A 09 6C 64 20 65 2C 28 68 6C 29 3A 20 69 6E 63    ..ld e,(hl): inc
00E670:  20 68 6C 0D 0A 09 6C 64 20 64 2C 28 68 6C 29 3A     hl...ld d,(hl):
00E680:  20 65 78 20 64 65 2C 68 6C 0D 0A 09 6C 64 20 64     ex de,hl...ld d
00E690:  65 2C 63 62 75 66 66 3A 20 6C 64 20 62 2C 30 3A    e,cbuff: ld b,0:
00E6A0:  20 6C 64 69 72 0D 0A 09 6C 64 20 61 2C 32 35 35     ldir...ld a,255
00E6B0:  3A 20 6C 64 20 28 64 65 29 2C 61 0D 0A 09 63 61    : ld (de),a...ca
00E6C0:  6C 6C 20 63 6C 69 5F 64 6F 3A 20 72 65 74 0D 0A    ll cli_do: ret..
00E6D0:  0D 0A 09 3B 41 63 74 75 61 6C 20 43 4C 49 20 72    ...;Actual CLI r
00E6E0:  6F 75 74 69 6E 65 0D 0A 0D 0A 2E 63 6C 69 5F 64    outine.....cli_d
00E6F0:  6F 09 6C 64 20 69 78 2C 63 62 75 66 66 3A 20 63    o.ld ix,cbuff: c
00E700:  61 6C 6C 20 67 65 74 70 61 72 09 09 3B 47 65 74    all getpar..;Get
00E710:  20 63 6F 6D 6D 61 6E 64 20 6E 61 6D 65 0D 0A 09     command name...
00E720:  6C 64 20 61 2C 62 3A 20 6F 72 20 61 3A 20 72 65    ld a,b: or a: re
00E730:  74 20 7A 0D 0A 0D 0A 09 70 75 73 68 20 62 63 0D    t z.....push bc.
00E740:  0A 09 20 6C 64 20 68 6C 2C 72 65 61 64 69 6E 0D    .. ld hl,readin.
00E750:  0A 2E 75 63 6C 5F 6C 70 09 20 6C 64 20 61 2C 28    ..ucl_lp. ld a,(
00E760:  68 6C 29 3A 20 63 61 6C 6C 20 75 63 61 73 65 3A    hl): call ucase:
00E770:  20 6C 64 20 28 68 6C 29 2C 61 0D 0A 09 20 69 6E     ld (hl),a... in
00E780:  63 20 68 6C 3A 20 64 6A 6E 7A 20 75 63 6C 5F 6C    c hl: djnz ucl_l
00E790:  70 0D 0A 09 70 6F 70 20 62 63 0D 0A 0D 0A 09 64    p...pop bc.....d
00E7A0:  65 63 20 68 6C 3A 20 73 65 74 20 37 2C 28 68 6C    ec hl: set 7,(hl
00E7B0:  29 09 09 09 3B 53 65 61 72 63 68 20 66 6F 72 20    )...;Search for 
00E7C0:  69 74 0D 0A 09 6C 64 20 68 6C 2C 72 65 61 64 69    it...ld hl,readi
00E7D0:  6E 3A 20 63 61 6C 6C 20 26 42 43 44 34 3A 20 6A    n: call &BCD4: j
00E7E0:  70 20 6E 63 2C 75 6E 6B 65 72 72 09 3B 20 7C 0D    p nc,unkerr.; |.
00E7F0:  0A 09 6C 64 20 61 2C 63 3A 20 6C 64 20 28 72 73    ..ld a,c: ld (rs
00E800:  22 3A 09 73 74 72 20 22 46 49 4E 44 22 0D 0A 09    ":.str "FIND"...
00E810:  73 74 72 20 22 42 41 4E 4B 22 3A 09 73 74 72 20    str "BANK":.str 
00E820:  22 42 41 4E 4B 2E 52 45 41 44 22 3A 73 74 72 20    "BANK.READ":str 
00E830:  22 42 41 4E 4B 2E 57 52 49 54 45 22 0D 0A 09 73    "BANK.WRITE"...s
00E840:  74 72 20 22 43 4F 50 59 22 3A 09 73 74 72 20 22    tr "COPY":.str "
00E850:  46 49 4C 4C 22 3A 09 73 74 72 20 22 43 41 4C 4C    FILL":.str "CALL
00E860:  22 0D 0A 09 73 74 72 20 22 41 46 22 3A 09 73 74    "...str "AF":.st
00E870:  72 20 22 42 43 22 3A 09 73 74 72 20 22 44 45 22    r "BC":.str "DE"
00E880:  0D 0A 09 73 74 72 20 22 48 4C 22 3A 09 73 74 72    ...str "HL":.str
00E890:  20 22 49 58 22 3A 09 73 74 72 20 22 49 59 22 0D     "IX":.str "IY".
00E8A0:  0A 0D 0A 09 3B 46 69 6C 65 20 63 6F 6D 6D 61 6E    ....;File comman
00E8B0:  64 73 0D 0A 0D 0A 09 73 74 72 20 22 54 59 50 45    ds.....str "TYPE
00E8C0:  22 3A 09 73 74 72 20 22 50 54 59 50 45 22 3A 09    ":.str "PTYPE":.
00E8D0:  73 74 72 20 22 49 4E 46 4F 22 0D 0A 09 73 74 72    str "INFO"...str
00E8E0:  20 22 48 4C 2E 57 52 49 54 45 22 3A 09 73 74 72     "HL.WRITE":.str
00E8F0:  20 22 48 4C 2E 52 45 41 44 22 0D 0A 09 73 74 72     "HL.READ"...str
00E900:  20 22 4C 4F 41 44 22 3A 09 73 74 72 20 22 44 45     "LOAD":.str "DE
00E910:  50 52 4F 54 45 43 54 22 0D 0A 0D 0A 09 3B 44 69    PROTECT".....;Di
00E920:  73 63 2D 6F 6E 6C 79 20 63 6F 6D 6D 61 6E 64 73    sc-only commands
00E930:  0D 0A 0D 0A 2E 64 5F 6F 6E 6C 79 09 73 74 72 20    .....d_only.str 
00E940:  22 53 45 43 54 4F 52 2E 57 52 49 54 45 22 3A 73    "SECTOR.WRITE":s
00E950:  74 72 20 22 53 45 43 54 4F 52 2E 52 45 41 44 22    tr "SECTOR.READ"
00E960:  0D 0A 09 73 74 72 20 22 55 53 45 52 22 3A 09 73    ...str "USER":.s
00E970:  74 72 20 22 43 41 54 22 0D 0A 09 64 62 20 30 0D    tr "CAT"...db 0.
00E980:  0A 0D 0A 09 3B 2A 2A 2A 20 52 53 58 09 7C 43 4C    ....;*** RSX.|CL
00E990:  49 5B 2C 73 74 72 69 6E 67 5D 0D 0A 0D 0A 2E 63    I[,string].....c
00E9A0:  6C 69 63 5F 69 09 6E 6F 70 0D 0A 09 63 70 20 31    lic_i.nop...cp 1
00E9B0:  3A 20 6A 70 20 7A 20 2C 63 6C 69 6F 6E 65 0D 0A    : jp z ,clione..
00E9C0:  09 6F 72 20 61 3A 20 6A 70 20 6E 7A 2C 70 61 72    .or a: jp nz,par
00E9D0:  65 72 72 0D 0A 0D 0A 09 3B 49 6E 70 75 74 20 6C    err.....;Input l
00E9E0:  69 6E 65 0D 0A 0D 0A 2E 63 6C 69 63 5F 6C 09 6C    ine.....clic_l.l
00E9F0:  64 20 61 2C 22 7C 22 3A 20 63 61 6C 6C 20 26 42    d a,"|": call &B
00EA00:  78 66 61 72 2B 32 29 2C 61 3A 20 6C 64 20 28 72    xfar+2),a: ld (r
00EA10:  73 78 66 61 72 29 2C 68 6C 09 3B 20 7C 0D 0A 0D    sxfar),hl.; |...
00EA20:  0A 09 6C 64 20 68 6C 2C 70 61 72 62 75 66 2B 36    ..ld hl,parbuf+6
00EA30:  33 3A 20 6C 64 20 28 70 61 72 70 6F 73 29 2C 68    3: ld (parpos),h
00EA40:  6C 09 09 3B 49 6E 69 74 69 61 6C 69 73 65 20 76    l..;Initialise v
00EA50:  61 72 69 61 62 6C 65 73 0D 0A 09 6C 64 20 68 6C    ariables...ld hl
00EA60:  2C 64 65 73 62 75 66 20 20 20 3A 20 6C 64 20 28    ,desbuf   : ld (
00EA70:  64 65 73 70 6F 73 29 2C 68 6C 09 09 3B 20 7C 0D    despos),hl..; |.
00EA80:  0A 09 6C 64 20 68 6C 2C 73 74 72 62 75 66 20 20    ..ld hl,strbuf  
00EA90:  20 3A 20 6C 64 20 28 73 74 72 70 6F 73 29 2C 68     : ld (strpos),h
00EAA0:  6C 3A 20 6C 64 20 65 2C 30 09 3B 20 7C 0D 0A 0D    l: ld e,0.; |...
00EAB0:  0A 2E 70 61 6C 6F 6F 70 09 6C 64 20 61 2C 28 69    ..paloop.ld a,(i
00EAC0:  78 29 3A 20 63 70 20 32 35 35 3A 20 6A 70 20 7A    x): cp 255: jp z
00EAD0:  2C 64 6F 5F 63 6F 6D 0D 0A 09 70 75 73 68 20 64    ,do_com...push d
00EAE0:  65 3A 20 63 61 6C 6C 20 67 65 74 70 61 72 3A 20    e: call getpar: 
00EAF0:  70 6F 70 20 64 65 0D 0A 09 6C 64 20 61 2C 62 20    pop de...ld a,b 
00EB00:  20 20 3A 20 6F 72 20 61 20 3A 20 6A 70 20 7A 2C      : or a : jp z,
00EB10:  64 6F 5F 63 6F 6D 0D 0A 09 63 61 6C 6C 20 61 6E    do_com...call an
00EB20:  61 6C 79 73 3A 20 6A 72 20 63 2C 74 78 74 70 61    alys: jr c,txtpa
00EB30:  72 0D 0A 0D 0A 09 6C 64 20 69 79 2C 28 70 61 72    r.....ld iy,(par
00EB40:  70 6F 73 29 3A 20 6C 64 20 28 69 79 29 2C 6C 3A    pos): ld (iy),l:
00EB50:  20 6C 64 20 28 69 79 2B 31 29 2C 68 09 3B 4E 75     ld (iy+1),h.;Nu
00EB60:  6D 65 72 69 63 61 6C 20 70 61 72 61 6D 65 74 65    merical paramete
00EB70:  72 0D 0A 09 64 65 63 20 69 79 3A 20 64 65 63 20    r...dec iy: dec 
00EB80:  69 79 3A 20 6C 64 20 28 70 61 72 70 6F 73 29 2C    iy: ld (parpos),
00EB90:  69 79 3A 20 69 6E 63 20 65 09 3B 20 7C 0D 0A 09    iy: inc e.; |...
00EBA0:  6A 72 20 70 61 6C 6F 6F 70 09 09 09 09 3B 20 7C    jr paloop....; |
00EBB0:  0D 0A 0D 0A 2E 74 78 74 70 61 72 09 70 75 73 68    .....txtpar.push
00EBC0:  20 64 65 0D 0A 09 20 6C 64 20 68 6C 2C 28 64 65     de... ld hl,(de
00EBD0:  73 70 6F 73 29 3A 20 6C 64 20 64 65 2C 28 73 74    spos): ld de,(st
00EBE0:  72 70 6F 73 29 0D 0A 09 20 6C 64 20 69 79 2C 28    rpos)... ld iy,(
00EBF0:  70 61 72 70 6F 73 29 3A 20 6C 64 20 28 69 79 29    parpos): ld (iy)
00EC00:  42 35 41 0D 0A 0D 0A 09 6C 64 20 68 6C 2C 63 62    B5A.....ld hl,cb
00EC10:  75 66 66 3A 20 6C 64 20 64 65 2C 63 62 75 66 66    uff: ld de,cbuff
00EC20:  2B 31 0D 0A 09 6C 64 20 28 68 6C 29 2C 30 3A 20    +1...ld (hl),0: 
00EC30:  6C 64 20 62 63 2C 36 34 3A 20 6C 64 69 72 0D 0A    ld bc,64: ldir..
00EC40:  0D 0A 09 6C 64 20 68 6C 2C 63 62 75 66 66 3A 20    ...ld hl,cbuff: 
00EC50:  6C 64 20 62 2C 30 0D 0A 2E 69 6E 5F 6C 70 09 63    ld b,0...in_lp.c
00EC60:  61 6C 6C 20 26 42 42 38 41 0D 0A 09 63 61 6C 6C    all &BB8A...call
00EC70:  20 26 42 42 30 36 0D 0A 09 70 75 73 68 20 61 66     &BB06...push af
00EC80:  3A 20 63 61 6C 6C 20 26 42 42 38 41 3A 20 70 6F    : call &BB8A: po
00EC90:  70 20 61 66 0D 0A 0D 0A 09 63 70 20 31 33 20 20    p af.....cp 13  
00ECA0:  3A 20 6A 72 20 7A 20 2C 69 6E 5F 72 65 74 0D 0A    : jr z ,in_ret..
00ECB0:  09 63 70 20 31 32 37 20 3A 20 6A 72 20 7A 20 2C    .cp 127 : jr z ,
00ECC0:  69 6E 5F 64 65 6C 0D 0A 09 63 70 20 32 35 32 20    in_del...cp 252 
00ECD0:  3A 20 6A 72 20 7A 20 2C 69 6E 5F 65 73 63 0D 0A    : jr z ,in_esc..
00ECE0:  09 63 70 20 33 32 20 20 3A 20 6A 72 20 63 20 2C    .cp 32  : jr c ,
00ECF0:  69 6E 5F 6C 70 0D 0A 09 62 69 74 20 37 2C 61 3A    in_lp...bit 7,a:
00ED00:  20 6A 72 20 6E 7A 2C 69 6E 5F 6C 70 0D 0A 0D 0A     jr nz,in_lp....
00ED10:  09 62 69 74 20 36 2C 62 3A 20 6A 72 20 6E 7A 2C    .bit 6,b: jr nz,
00ED20:  69 6E 5F 6C 70 0D 0A 09 6C 64 20 28 68 6C 29 2C    in_lp...ld (hl),
00ED30:  61 3A 20 69 6E 63 20 68 6C 3A 20 69 6E 63 20 62    a: inc hl: inc b
00ED40:  0D 0A 09 63 61 6C 6C 20 26 42 42 35 41 3A 20 6A    ...call &BB5A: j
00ED50:  72 20 69 6E 5F 6C 70 0D 0A 0D 0A 2E 69 6E 5F 64    r in_lp.....in_d
00ED60:  65 6C 09 6C 64 20 61 2C 62 3A 20 6F 72 20 61 3A    el.ld a,b: or a:
00ED70:  20 6A 72 20 7A 2C 69 6E 5F 6C 70 0D 0A 09 6C 64     jr z,in_lp...ld
00ED80:  20 61 2C 38 20 3A 20 63 61 6C 6C 20 26 42 42 35     a,8 : call &BB5
00ED90:  41 3A 20 64 65 63 20 68 6C 3A 20 6C 64 20 28 68    A: dec hl: ld (h
00EDA0:  6C 29 2C 30 0D 0A 09 6C 64 20 61 2C 31 36 3A 20    l),0...ld a,16: 
00EDB0:  63 61 6C 6C 20 26 42 42 35 41 3A 20 64 65 63 20    call &BB5A: dec 
00EDC0:  62 20 3A 20 6A 72 20 69 6E 5F 6C 70 0D 0A 2E 69    b : jr in_lp...i
00EDD0:  6E 5F 65 73 63 09 6C 64 20 68 6C 2C 62 72 6B 74    n_esc.ld hl,brkt
00EDE0:  78 74 3A 20 63 61 6C 6C 20 73 74 72 69 6E 67 3A    xt: call string:
00EDF0:  20 6A 70 20 63 72 6C 66 0D 0A 2E 69 6E 5F 72 65     jp crlf...in_re
00EE00:  2C 6C 3A 20 6C 64 20 28 69 79 2B 31 29 2C 68 0D    ,l: ld (iy+1),h.
00EE10:  0A 09 20 64 65 63 20 69 79 3A 20 64 65 63 20 69    .. dec iy: dec i
00EE20:  79 3A 20 6C 64 20 28 70 61 72 70 6F 73 29 2C 69    y: ld (parpos),i
00EE30:  79 0D 0A 09 20 6C 64 20 28 68 6C 29 2C 62 3A 20    y... ld (hl),b: 
00EE40:  69 6E 63 20 68 6C 0D 0A 09 20 6C 64 20 28 68 6C    inc hl... ld (hl
00EE50:  29 2C 65 3A 20 69 6E 63 20 68 6C 0D 0A 09 20 6C    ),e: inc hl... l
00EE60:  64 20 28 68 6C 29 2C 64 3A 20 69 6E 63 20 68 6C    d (hl),d: inc hl
00EE70:  3A 20 6C 64 20 28 64 65 73 70 6F 73 29 2C 68 6C    : ld (despos),hl
00EE80:  0D 0A 09 20 6C 64 20 68 6C 2C 72 65 61 64 69 6E    ... ld hl,readin
00EE90:  3A 20 6C 64 20 63 2C 62 3A 20 6C 64 20 62 2C 30    : ld c,b: ld b,0
00EEA0:  3A 20 6C 64 69 72 0D 0A 09 20 6C 64 20 28 73 74    : ldir... ld (st
00EEB0:  72 70 6F 73 29 2C 64 65 0D 0A 09 70 6F 70 20 64    rpos),de...pop d
00EEC0:  65 3A 20 69 6E 63 20 65 3A 20 6A 70 20 70 61 6C    e: inc e: jp pal
00EED0:  6F 6F 70 0D 0A 0D 0A 2E 64 6F 5F 63 6F 6D 09 6C    oop.....do_com.l
00EEE0:  64 20 61 2C 26 43 39 3A 20 6C 64 20 28 63 6C 69    d a,&C9: ld (cli
00EEF0:  63 5F 69 29 2C 61 09 09 09 3B 50 72 65 76 65 6E    c_i),a...;Preven
00EF00:  74 20 6E 65 73 74 69 6E 67 0D 0A 09 6C 64 20 69    t nesting...ld i
00EF10:  78 2C 28 70 61 72 70 6F 73 29 3A 20 69 6E 63 20    x,(parpos): inc 
00EF20:  69 78 3A 20 69 6E 63 20 69 78 0D 0A 09 6C 64 20    ix: inc ix...ld 
00EF30:  61 2C 65 3A 20 72 73 74 20 33 2C 72 73 78 66 61    a,e: rst 3,rsxfa
00EF40:  72 0D 0A 09 78 6F 72 20 61 3A 20 6C 64 20 28 63    r...xor a: ld (c
00EF50:  6C 69 63 5F 69 29 2C 61 3A 20 72 65 74 09 09 3B    lic_i),a: ret..;
00EF60:  52 65 2D 65 6E 61 62 6C 65 20 72 6F 75 74 69 6E    Re-enable routin
00EF70:  65 0D 0A 0D 0A 09 3B 41 6E 61 6C 79 73 65 20 70    e.....;Analyse p
00EF80:  61 72 61 6D 65 74 65 72 0D 0A 0D 0A 2E 61 6E 61    arameter.....ana
00EF90:  6C 79 73 09 6C 64 20 69 79 2C 72 65 61 64 69 6E    lys.ld iy,readin
00EFA0:  09 09 09 09 3B 41 6E 79 20 6C 65 74 74 65 72 73    ....;Any letters
00EFB0:  20 69 6E 20 74 68 65 72 65 2E 2E 2E 3F 0D 0A 09     in there...?...
00EFC0:  70 75 73 68 20 62 63 0D 0A 2E 61 6E 61 6C 6C 70    push bc...anallp
00EFD0:  09 20 6C 64 20 61 2C 28 69 79 29 3A 20 63 70 20    . ld a,(iy): cp 
00EFE0:  22 30 22 3A 20 6A 72 20 63 20 2C 6E 6F 74 6E 75    "0": jr c ,notnu
00EFF0:  6D 0D 0A 09 09 20 20 20 20 63 70 20 22 3A 22 3A    m....    cp ":":
00F000:  74 09 6C 64 20 61 2C 32 35 35 3A 20 6C 64 20 28    t.ld a,255: ld (
00F010:  68 6C 29 2C 61 3A 20 63 61 6C 6C 20 63 72 6C 66    hl),a: call crlf
00F020:  0D 0A 09 6C 64 20 61 2C 28 63 62 75 66 66 29 3A    ...ld a,(cbuff):
00F030:  20 63 70 20 22 2A 22 3A 20 6A 72 20 6E 7A 2C 6E     cp "*": jr nz,n
00F040:  6F 68 69 64 6E 09 3B 56 65 72 79 20 69 6E 64 75    ohidn.;Very indu
00F050:  6C 67 65 6E 74 20 6D 65 73 73 61 67 65 20 74 68    lgent message th
00F060:  69 6E 67 0D 0A 09 70 75 73 68 20 62 63 3A 20 70    ing...push bc: p
00F070:  75 73 68 20 68 6C 09 09 09 3B 20 7C 0D 0A 09 20    ush hl...; |... 
00F080:  6C 64 20 69 78 2C 63 62 75 66 66 3A 20 6C 64 20    ld ix,cbuff: ld 
00F090:  68 6C 2C 30 09 09 09 3B 20 7C 0D 0A 2E 68 69 64    hl,0...; |...hid
00F0A0:  65 6C 70 09 20 6C 64 20 65 2C 28 69 78 29 3A 20    elp. ld e,(ix): 
00F0B0:  6C 64 20 64 2C 30 3A 20 61 64 64 20 68 6C 2C 64    ld d,0: add hl,d
00F0C0:  65 09 09 3B 20 7C 0D 0A 09 20 69 6E 63 20 69 78    e..; |... inc ix
00F0D0:  3A 20 64 6A 6E 7A 20 68 69 64 65 6C 70 09 09 09    : djnz hidelp...
00F0E0:  3B 20 7C 0D 0A 09 20 6C 64 20 61 2C 68 3A 20 63    ; |... ld a,h: c
00F0F0:  70 20 31 3A 20 6A 72 20 6E 7A 2C 6E 6F 74 67 6F    p 1: jr nz,notgo
00F100:  74 09 09 3B 20 7C 0D 0A 09 20 6C 64 20 61 2C 6C    t..; |... ld a,l
00F110:  3A 20 63 70 20 26 32 34 3A 20 6A 72 20 7A 2C 73    : cp &24: jr z,s
00F120:  74 73 09 09 3B 20 7C 0D 0A 09 09 20 63 70 20 26    ts..; |.... cp &
00F130:  42 30 3A 20 6A 72 20 7A 2C 72 6F 62 6F 74 09 09    B0: jr z,robot..
00F140:  3B 20 7C 0D 0A 09 09 20 63 70 20 26 34 38 3A 20    ; |.... cp &48: 
00F150:  6A 72 20 7A 2C 61 61 61 61 68 09 09 3B 20 7C 0D    jr z,aaaah..; |.
00F160:  0A 2E 6E 6F 74 67 6F 74 09 70 6F 70 20 68 6C 3A    ..notgot.pop hl:
00F170:  20 70 6F 70 20 62 63 09 09 09 09 3B 20 7C 0D 0A     pop bc....; |..
00F180:  2E 6E 6F 68 69 64 6E 09 63 61 6C 6C 20 63 6C 69    .nohidn.call cli
00F190:  5F 64 6F 3A 20 6A 70 20 63 6C 69 63 5F 6C 0D 0A    _do: jp clic_l..
00F1A0:  0D 0A 2E 72 6F 62 6F 74 09 6C 64 20 68 6C 2C 74    ...robot.ld hl,t
00F1B0:  77 69 66 66 3A 20 63 61 6C 6C 20 73 74 72 69 6E    wiff: call strin
00F1C0:  67 3A 20 63 61 6C 6C 20 63 72 6C 66 3A 20 70 6F    g: call crlf: po
00F1D0:  70 20 68 6C 3A 20 70 6F 70 20 62 63 3A 20 6A 70    p hl: pop bc: jp
00F1E0:  20 63 6C 69 63 5F 6C 0D 0A 09 64 62 20 31 36 34     clic_l...db 164
00F1F0:  2C 22 31 39 39 34 20 43 52 54 43 3A 20 22 0D 0A    ,"1994 CRTC: "..
00F200:  20 6A 72 20 6E 63 2C 6E 6F 74 6E 75 6D 0D 0A 09     jr nc,notnum...
00F210:  20 69 6E 63 20 69 79 3A 20 64 6A 6E 7A 20 61 6E     inc iy: djnz an
00F220:  61 6C 6C 70 0D 0A 09 70 6F 70 20 62 63 0D 0A 0D    allp...pop bc...
00F230:  0A 09 6C 64 20 69 79 2C 72 65 61 64 69 6E 3A 20    ..ld iy,readin: 
00F240:  6C 64 20 68 6C 2C 30 0D 0A 2E 61 64 64 61 6C 70    ld hl,0...addalp
00F250:  09 6C 64 20 61 2C 28 69 79 29 3A 20 70 75 73 68    .ld a,(iy): push
00F260:  20 64 65 0D 0A 09 20 61 64 64 20 68 6C 2C 68 6C     de... add hl,hl
00F270:  3A 20 6C 64 20 65 2C 6C 3A 20 6C 64 20 64 2C 68    : ld e,l: ld d,h
00F280:  3A 20 61 64 64 20 68 6C 2C 68 6C 09 3B 48 4C 20    : add hl,hl.;HL 
00F290:  3D 20 48 4C 20 2A 20 31 30 0D 0A 09 20 61 64 64    = HL * 10... add
00F2A0:  20 68 6C 2C 68 6C 3A 20 61 64 64 20 68 6C 2C 64     hl,hl: add hl,d
00F2B0:  65 0D 0A 09 20 73 75 62 20 34 38 3A 20 6C 64 20    e... sub 48: ld 
00F2C0:  65 2C 61 3A 20 6C 64 20 64 2C 30 3A 20 61 64 64    e,a: ld d,0: add
00F2D0:  20 68 6C 2C 64 65 09 3B 48 4C 20 3D 20 48 4C 20     hl,de.;HL = HL 
00F2E0:  2B 20 6E 65 77 20 6E 75 6D 62 65 72 0D 0A 09 70    + new number...p
00F2F0:  6F 70 20 64 65 3A 20 69 6E 63 20 69 79 3A 20 64    op de: inc iy: d
00F300:  6A 6E 7A 20 61 64 64 61 6C 70 0D 0A 09 6F 72 20    jnz addalp...or 
00F310:  61 3A 20 72 65 74 0D 0A 0D 0A 2E 6E 6F 74 6E 75    a: ret.....notnu
00F320:  6D 09 70 6F 70 20 62 63 3A 20 73 63 66 3A 20 72    m.pop bc: scf: r
00F330:  65 74 09 09 09 3B 41 68 61 2C 20 66 6F 75 6E 64    et...;Aha, found
00F340:  20 61 20 6C 65 74 74 65 72 2C 20 73 6F 20 65 78     a letter, so ex
00F350:  69 74 0D 0A 0D 0A 09 3B 47 65 74 20 70 61 72 61    it.....;Get para
00F360:  6D 65 74 65 72 0D 0A 0D 0A 2E 67 65 74 70 61 72    meter.....getpar
00F370:  09 6C 64 20 68 6C 2C 72 65 61 64 69 6E 3A 20 6C    .ld hl,readin: l
00F380:  64 20 64 65 2C 72 65 61 64 69 6E 2B 31 09 09 3B    d de,readin+1..;
00F390:  43 6C 65 61 72 20 62 75 66 66 65 72 0D 0A 09 6C    Clear buffer...l
00F3A0:  64 20 28 68 6C 29 2C 30 3A 20 6C 64 20 62 63 2C    d (hl),0: ld bc,
00F3B0:  36 34 3A 20 6C 64 69 72 0D 0A 0D 0A 09 6C 64 20    64: ldir.....ld 
00F3C0:  68 6C 2C 72 65 61 64 69 6E 3A 20 6C 64 20 62 2C    hl,readin: ld b,
00F3D0:  30 0D 0A 09 6C 64 20 61 2C 28 69 78 29 3A 20 63    0...ld a,(ix): c
00F3E0:  70 20 33 34 3A 20 6A 72 20 7A 2C 69 6E 76 63 6F    p 34: jr z,invco
00F3F0:  6D 0D 0A 0D 0A 2E 67 65 74 70 72 6C 09 6C 64 20    m.....getprl.ld 
00F400:  2E 74 77 69 66 66 09 64 62 20 22 49 74 27 73 20    .twiff.db "It's 
00F410:  74 77 69 66 66 69 63 21 22 2C 30 0D 0A 2E 61 61    twiffic!",0...aa
00F420:  61 61 68 09 6C 64 20 62 2C 34 30 3A 20 6C 64 20    aah.ld b,40: ld 
00F430:  61 2C 32 32 38 0D 0A 2E 61 61 68 6C 70 09 63 61    a,228...aahlp.ca
00F440:  6C 6C 20 26 42 42 35 41 3A 20 64 6A 6E 7A 20 61    ll &BB5A: djnz a
00F450:  61 68 6C 70 3A 20 20 20 63 61 6C 6C 20 63 72 6C    ahlp:   call crl
00F460:  66 3A 20 70 6F 70 20 68 6C 3A 20 70 6F 70 20 62    f: pop hl: pop b
00F470:  63 3A 20 6A 70 20 63 6C 69 63 5F 6C 0D 0A 2E 73    c: jp clic_l...s
00F480:  74 73 09 6C 64 20 69 79 2C 6D 75 73 69 63 3A 20    ts.ld iy,music: 
00F490:  6C 64 20 62 2C 39 0D 0A 2E 73 74 73 6C 70 09 6C    ld b,9...stslp.l
00F4A0:  64 20 6C 2C 28 69 79 2B 30 29 3A 20 6C 64 20 68    d l,(iy+0): ld h
00F4B0:  2C 28 69 79 2B 31 29 3A 20 6C 64 20 28 74 6F 6E    ,(iy+1): ld (ton
00F4C0:  65 29 2C 68 6C 0D 0A 09 6C 64 20 6C 2C 28 69 79    e),hl...ld l,(iy
00F4D0:  2B 32 29 3A 20 6C 64 20 68 2C 28 69 79 2B 33 29    +2): ld h,(iy+3)
00F4E0:  3A 20 6C 64 20 28 6C 6F 6E 67 29 2C 68 6C 0D 0A    : ld (long),hl..
00F4F0:  09 69 6E 63 20 69 79 3A 20 69 6E 63 20 69 79 3A    .inc iy: inc iy:
00F500:  20 69 6E 63 20 69 79 3A 20 69 6E 63 20 69 79 0D     inc iy: inc iy.
00F510:  0A 2E 73 74 72 79 09 70 75 73 68 20 62 63 3A 20    ..stry.push bc: 
00F520:  6C 64 20 68 6C 2C 73 6F 75 6E 64 3A 20 63 61 6C    ld hl,sound: cal
00F530:  6C 20 26 42 43 41 41 3A 20 70 6F 70 20 62 63 3A    l &BCAA: pop bc:
00F540:  20 6A 72 20 6E 63 2C 73 74 72 79 0D 0A 09 64 6A     jr nc,stry...dj
00F550:  6E 7A 20 73 74 73 6C 70 3A 20 70 6F 70 20 68 6C    nz stslp: pop hl
00F560:  3A 20 70 6F 70 20 62 63 3A 20 6A 70 20 63 6C 69    : pop bc: jp cli
00F570:  63 5F 6C 0D 0A 2E 73 6F 75 6E 64 09 64 62 20 32    c_l...sound.db 2
00F580:  2C 30 2C 30 0D 0A 2E 74 6F 6E 65 09 64 77 20 30    ,0,0...tone.dw 0
00F590:  3A 20 64 62 20 30 2C 31 35 0D 0A 2E 6C 6F 6E 67    : db 0,15...long
00F5A0:  09 64 77 20 30 0D 0A 2E 6D 75 73 69 63 09 64 77    .dw 0...music.dw
00F5B0:  20 34 37 38 2C 33 30 2C 20 33 37 39 2C 33 30 2C     478,30, 379,30,
00F5C0:  20 33 31 39 2C 39 30 0D 0A 09 64 77 20 32 38 34     319,90...dw 284
00F5D0:  2C 32 30 2C 20 33 31 39 2C 31 30 2C 20 33 35 38    ,20, 319,10, 358
00F5E0:  2C 32 30 0D 0A 09 64 77 20 33 37 39 2C 31 30 2C    ,20...dw 379,10,
00F5F0:  20 34 32 36 2C 33 30 2C 20 34 37 38 2C 36 30 0D     426,30, 478,60.
00F600:  5F 69 3A 09 6A 70 20 73 74 64 65 5F 69 0D 0A 09    _i:.jp stde_i...
00F610:  6A 70 20 73 74 68 6C 5F 69 3A 09 6A 70 20 73 74    jp sthl_i:.jp st
00F620:  69 78 5F 69 3A 09 6A 70 20 73 74 69 79 5F 69 0D    ix_i:.jp stiy_i.
00F630:  0A 0D 0A 09 6A 70 20 74 79 70 65 5F 69 3A 09 6A    ....jp type_i:.j
00F640:  70 20 70 74 79 70 5F 69 3A 09 6A 70 20 69 6E 66    p ptyp_i:.jp inf
00F650:  6F 5F 69 0D 0A 09 6A 70 20 68 6C 77 72 5F 69 3A    o_i...jp hlwr_i:
00F660:  09 6A 70 20 68 6C 72 64 5F 69 0D 0A 09 6A 70 20    .jp hlrd_i...jp 
00F670:  6C 6F 61 64 5F 69 3A 09 6A 70 20 64 70 72 6F 5F    load_i:.jp dpro_
00F680:  69 0D 0A 0D 0A 09 6A 70 20 73 65 63 77 5F 69 3A    i.....jp secw_i:
00F690:  09 6A 70 20 73 65 63 72 5F 69 0D 0A 09 6A 70 20    .jp secr_i...jp 
00F6A0:  75 73 65 72 5F 69 3A 09 6A 70 20 63 61 74 6C 5F    user_i:.jp catl_
00F6B0:  69 0D 0A 0D 0A 2E 6E 61 6D 65 5F 74 09 73 74 72    i.....name_t.str
00F6C0:  20 22 43 4C 49 22 3A 09 73 74 72 20 22 45 58 45     "CLI":.str "EXE
00F6D0:  43 22 0D 0A 09 73 74 72 20 22 4B 45 59 22 3A 09    C"...str "KEY":.
00F6E0:  73 74 72 20 22 50 55 54 4B 45 59 22 0D 0A 0D 0A    str "PUTKEY"....
00F6F0:  09 3B 53 63 72 65 65 6E 20 63 6F 6D 6D 61 6E 64    .;Screen command
00F700:  73 0D 0A 0D 0A 09 73 74 72 20 22 45 44 49 54 22    s.....str "EDIT"
00F710:  3A 09 73 74 72 20 22 44 4F 55 42 4C 45 22 3A 09    :.str "DOUBLE":.
00F720:  73 74 72 20 22 57 52 49 54 45 22 0D 0A 09 73 74    str "WRITE"...st
00F730:  72 20 22 4D 4F 44 45 22 3A 09 73 74 72 20 22 49    r "MODE":.str "I
00F740:  4E 4B 22 3A 09 73 74 72 20 22 42 4F 52 44 45 52    NK":.str "BORDER
00F750:  22 0D 0A 0D 0A 09 3B 34 36 34 20 63 6F 6D 6D 61    ".....;464 comma
00F760:  6E 64 73 0D 0A 0D 0A 09 73 74 72 20 22 46 52 41    nds.....str "FRA
00F770:  4D 45 22 3A 09 73 74 72 20 22 43 55 52 53 4F 52    ME":.str "CURSOR
00F780:  22 3A 09 73 74 72 20 22 47 52 41 50 48 49 43 53    ":.str "GRAPHICS
00F790:  2E 50 41 50 45 52 22 0D 0A 09 73 74 72 20 22 43    .PAPER"...str "C
00F7A0:  4F 50 59 2E 43 48 52 22 3A 09 73 74 72 20 22 43    OPY.CHR":.str "C
00F7B0:  4C 45 41 52 2E 49 4E 50 55 54 22 3A 20 73 74 72    LEAR.INPUT": str
00F7C0:  20 22 47 52 41 50 48 49 43 53 2E 50 45 4E 22 0D     "GRAPHICS.PEN".
00F7D0:  0A 0D 0A 09 3B 4D 65 6D 6F 72 79 20 63 6F 6D 6D    ....;Memory comm
00F7E0:  61 6E 64 73 0D 0A 0D 0A 09 73 74 72 20 22 4D 45    ands.....str "ME
00F7F0:  4D 4F 52 59 22 3A 09 73 74 72 20 22 44 55 4D 50    MORY":.str "DUMP
00F800:  54 72 61 63 6B 2D 49 6E 66 6F 0D 0A 00 00 00 00    Track-Info......
00F810:  0D 00 01 00 02 09 4E E5 0D 00 C9 02 00 00 00 02    ......N.........
00F820:  0D 00 C5 02 00 00 00 02 0D 00 C1 02 00 00 00 02    ................
00F830:  0D 00 C6 02 00 00 00 02 0D 00 C2 02 00 00 00 02    ................
00F840:  0D 00 C7 02 00 00 00 02 0D 00 C3 02 00 00 00 02    ................
00F850:  0D 00 C8 02 00 00 00 02 0D 00 C4 02 00 00 00 02    ................
00F860:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
00F870:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
00F880:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
00F890:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
00F8A0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
00F8B0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
00F8C0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
00F8D0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
00F8E0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
00F8F0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
00F900:  6C 64 20 61 2C 28 69 79 2B 30 29 3A 20 6F 72 20    ld a,(iy+0): or 
00F910:  61 3A 20 72 72 20 61 3A 20 6C 64 20 28 69 79 2B    a: rr a: ld (iy+
00F920:  30 29 2C 61 0D 0A 09 6C 64 20 61 2C 28 69 79 2B    0),a...ld a,(iy+
00F930:  31 29 3A 20 6F 72 20 61 3A 20 72 72 20 61 3A 20    1): or a: rr a: 
00F940:  6C 64 20 28 69 79 2B 31 29 2C 61 0D 0A 09 6C 64    ld (iy+1),a...ld
00F950:  20 61 2C 28 69 79 2B 32 29 3A 20 6F 72 20 61 3A     a,(iy+2): or a:
00F960:  20 72 72 20 61 3A 20 6C 64 20 28 69 79 2B 32 29     rr a: ld (iy+2)
00F970:  2C 61 0D 0A 09 6C 64 20 61 2C 28 69 79 2B 33 29    ,a...ld a,(iy+3)
00F980:  3A 20 6F 72 20 61 3A 20 72 72 20 61 3A 20 6C 64    : or a: rr a: ld
00F990:  20 28 69 79 2B 33 29 2C 61 0D 0A 09 72 65 74 0D     (iy+3),a...ret.
00F9A0:  0A 0D 0A 2E 77 5F 75 6E 64 65 09 6C 64 20 61 2C    ....w_unde.ld a,
00F9B0:  32 35 35 3A 20 6C 64 20 28 69 79 2B 37 29 2C 61    255: ld (iy+7),a
00F9C0:  3A 20 72 65 74 0D 0A 0D 0A 2E 77 5F 66 6C 69 70    : ret.....w_flip
00F9D0:  09 6C 64 20 64 2C 28 69 79 2B 30 29 3A 20 6C 64    .ld d,(iy+0): ld
00F9E0:  20 61 2C 28 69 79 2B 37 29 3A 20 6C 64 20 28 69     a,(iy+7): ld (i
00F9F0:  79 2B 37 29 2C 64 3A 20 6C 64 20 28 69 79 2B 30    y+7),d: ld (iy+0
00FA00:  29 2C 61 0D 0A 09 6C 64 20 64 2C 28 69 79 2B 31    ),a...ld d,(iy+1
00FA10:  29 3A 20 6C 64 20 61 2C 28 69 79 2B 36 29 3A 20    ): ld a,(iy+6): 
00FA20:  6C 64 20 28 69 79 2B 36 29 2C 64 3A 20 6C 64 20    ld (iy+6),d: ld 
00FA30:  28 69 79 2B 31 29 2C 61 0D 0A 09 6C 64 20 64 2C    (iy+1),a...ld d,
00FA40:  28 69 79 2B 32 29 3A 20 6C 64 20 61 2C 28 69 79    (iy+2): ld a,(iy
00FA50:  2B 35 29 3A 20 6C 64 20 28 69 79 2B 35 29 2C 64    +5): ld (iy+5),d
00FA60:  3A 20 6C 64 20 28 69 79 2B 32 29 2C 61 0D 0A 09    : ld (iy+2),a...
00FA70:  6C 64 20 64 2C 28 69 79 2B 33 29 3A 20 6C 64 20    ld d,(iy+3): ld 
00FA80:  61 2C 28 69 79 2B 34 29 3A 20 6C 64 20 28 69 79    a,(iy+4): ld (iy
00FA90:  2B 34 29 2C 64 3A 20 6C 64 20 28 69 79 2B 33 29    +4),d: ld (iy+3)
00FAA0:  2C 61 0D 0A 09 72 65 74 0D 0A 0D 0A 09 3B 2A 2A    ,a...ret.....;**
00FAB0:  2A 20 52 53 58 09 7C 44 4F 55 42 4C 45 2C 73 74    * RSX.|DOUBLE,st
00FAC0:  72 69 6E 67 0D 0A 0D 0A 2E 64 6F 75 62 5F 69 09    ring.....doub_i.
00FAD0:  63 70 20 31 3A 20 6A 70 20 6E 7A 2C 70 61 72 65    cp 1: jp nz,pare
00FAE0:  72 72 0D 0A 09 6C 64 20 61 2C 32 35 34 3A 20 63    rr...ld a,254: c
00FAF0:  61 6C 6C 20 26 42 42 41 35 3A 20 6A 70 20 6E 63    all &BBA5: jp nc
00FB00:  6F 72 64 5F 69 09 63 70 20 31 3A 20 6A 70 20 6E    ord_i.cp 1: jp n
00FB10:  7A 2C 70 61 72 65 72 72 3A 20 6C 64 20 62 2C 28    z,parerr: ld b,(
00FB20:  69 78 29 3A 20 6C 64 20 63 2C 62 3A 20 6A 70 20    ix): ld c,b: jp 
00FB30:  26 42 43 33 38 0D 0A 0D 0A 09 3B 2A 2A 2A 20 52    &BC38.....;*** R
00FB40:  53 58 09 7C 57 52 49 54 45 2C 73 74 72 69 6E 67    SX.|WRITE,string
00FB50:  0D 0A 0D 0A 2E 77 72 69 74 5F 69 09 63 70 20 31    .....writ_i.cp 1
00FB60:  3A 20 6A 70 20 7A 20 2C 6F 6E 65 70 61 72 0D 0A    : jp z ,onepar..
00FB70:  09 63 70 20 32 3A 20 6A 70 20 6E 7A 2C 70 61 72    .cp 2: jp nz,par
00FB80:  65 72 72 0D 0A 09 6C 64 20 63 2C 28 69 78 2B 32    err...ld c,(ix+2
00FB90:  29 3A 20 6A 72 20 77 72 69 74 5F 64 0D 0A 2E 6F    ): jr writ_d...o
00FBA0:  6E 65 70 61 72 09 6C 64 20 63 2C 30 0D 0A 0D 0A    nepar.ld c,0....
00FBB0:  2E 77 72 69 74 5F 64 09 6C 64 20 61 2C 32 35 35    .writ_d.ld a,255
00FBC0:  3A 20 63 61 6C 6C 20 26 42 42 41 35 3A 20 6A 70    : call &BBA5: jp
00FBD0:  20 6E 63 2C 63 68 72 65 72 72 0D 0A 09 70 75 73     nc,chrerr...pus
00FBE0:  68 20 68 6C 3A 20 70 6F 70 20 69 79 0D 0A 0D 0A    h hl: pop iy....
00FBF0:  09 6C 64 20 6C 2C 28 69 78 29 3A 20 6C 64 20 68    .ld l,(ix): ld h
00FC00:  2C 28 69 78 2B 31 29 0D 0A 09 6C 64 20 62 2C 28    ,(ix+1)...ld b,(
00FC10:  68 6C 29 3A 20 69 6E 63 20 68 6C 0D 0A 09 6C 64    hl): inc hl...ld
00FC20:  20 65 2C 28 68 6C 29 3A 20 69 6E 63 20 68 6C 0D     e,(hl): inc hl.
00FC30:  0A 09 6C 64 20 64 2C 28 68 6C 29 3A 20 70 75 73    ..ld d,(hl): pus
00FC40:  68 20 64 65 3A 20 70 6F 70 20 69 78 0D 0A 0D 0A    h de: pop ix....
00FC50:  09 6C 64 20 61 2C 62 3A 20 6F 72 20 61 3A 20 72    .ld a,b: or a: r
00FC60:  65 74 20 7A 0D 0A 0D 0A 2E 77 72 69 74 5F 6C 09    et z.....writ_l.
00FC70:  6C 64 20 61 2C 28 69 78 29 0D 0A 09 63 70 20 32    ld a,(ix)...cp 2
00FC80:  20 3A 20 6A 70 20 7A 2C 74 5F 62 6F 6C 64 0D 0A     : jp z,t_bold..
00FC90:  09 63 70 20 32 30 3A 20 6A 70 20 7A 2C 74 5F 74    .cp 20: jp z,t_t
00FCA0:  68 69 6E 0D 0A 09 63 70 20 39 20 3A 20 6A 70 20    hin...cp 9 : jp 
00FCB0:  7A 2C 74 5F 69 74 61 6C 0D 0A 09 63 70 20 32 31    z,t_ital...cp 21
00FCC0:  3A 20 6A 70 20 7A 2C 74 5F 75 6E 64 65 0D 0A 09    : jp z,t_unde...
00FCD0:  63 70 20 36 20 3A 20 6A 70 20 7A 2C 74 5F 66 6C    cp 6 : jp z,t_fl
00FCE0:  69 70 0D 0A 0D 0A 09 63 61 6C 6C 20 26 42 42 41    ip.....call &BBA
00FCF0:  35 3A 20 63 61 6C 6C 20 26 42 39 30 36 0D 0A 09    5: call &B906...
00FD00:  61 2C 28 69 78 29 09 09 09 09 3B 43 6F 70 79 20    a,(ix)....;Copy 
00FD10:  74 6F 20 22 72 65 61 64 20 69 6E 22 20 62 75 66    to "read in" buf
00FD20:  66 65 72 0D 0A 09 63 70 20 32 35 35 3A 20 72 65    fer...cp 255: re
00FD30:  74 20 7A 0D 0A 09 63 70 20 22 20 22 3A 20 6A 72    t z...cp " ": jr
00FD40:  20 7A 2C 65 78 69 6E 63 31 0D 0A 09 63 70 20 22     z,exinc1...cp "
00FD50:  2C 22 3A 20 6A 72 20 7A 2C 65 78 69 6E 63 31 0D    ,": jr z,exinc1.
00FD60:  0A 09 6C 64 20 28 68 6C 29 2C 61 3A 20 69 6E 63    ..ld (hl),a: inc
00FD70:  20 62 3A 20 69 6E 63 20 68 6C 3A 20 69 6E 63 20     b: inc hl: inc 
00FD80:  69 78 3A 20 6A 72 20 67 65 74 70 72 6C 0D 0A 0D    ix: jr getprl...
00FD90:  0A 2E 69 6E 76 63 6F 6D 09 69 6E 63 20 69 78 0D    ..invcom.inc ix.
00FDA0:  0A 2E 69 6E 76 70 72 6C 09 6C 64 20 61 2C 28 69    ..invprl.ld a,(i
00FDB0:  78 29 09 09 09 09 3B 51 75 6F 74 65 64 20 74 65    x)....;Quoted te
00FDC0:  78 74 0D 0A 09 63 70 20 32 35 35 3A 20 72 65 74    xt...cp 255: ret
00FDD0:  20 7A 0D 0A 09 63 70 20 33 34 20 3A 20 6A 72 20     z...cp 34 : jr 
00FDE0:  7A 2C 65 78 69 6E 63 31 0D 0A 09 6C 64 20 28 68    z,exinc1...ld (h
00FDF0:  6C 29 2C 61 3A 20 69 6E 63 20 62 3A 20 69 6E 63    l),a: inc b: inc
00FE00:  20 68 6C 3A 20 69 6E 63 20 69 78 3A 20 6A 72 20     hl: inc ix: jr 
00FE10:  69 6E 76 70 72 6C 0D 0A 0D 0A 2E 65 78 69 6E 63    invprl.....exinc
00FE20:  31 09 69 6E 63 20 69 78 3A 20 6C 64 20 61 2C 28    1.inc ix: ld a,(
00FE30:  69 78 29 09 09 09 3B 52 65 6D 6F 76 65 20 65 78    ix)...;Remove ex
00FE40:  63 65 73 73 20 73 70 61 63 65 0D 0A 09 63 70 20    cess space...cp 
00FE50:  32 35 35 3A 20 72 65 74 20 7A 0D 0A 09 63 70 20    255: ret z...cp 
00FE60:  22 20 22 3A 20 6A 72 20 7A 2C 65 78 69 6E 63 31    " ": jr z,exinc1
00FE70:  0D 0A 09 72 65 74 0D 0A 0D 0A 2E 72 65 61 64 69    ...ret.....readi
00FE80:  6E 09 64 73 20 36 35 09 09 09 09 09 3B 57 68 65    n.ds 65.....;Whe
00FE90:  72 65 20 74 68 65 20 70 61 72 61 6D 65 74 65 72    re the parameter
00FEA0:  20 69 73 20 72 65 61 64 20 69 6E 0D 0A 0D 0A 2E     is read in.....
00FEB0:  70 61 72 62 75 66 09 64 73 20 36 35 09 09 09 09    parbuf.ds 65....
00FEC0:  09 3B 50 61 72 61 6D 65 74 65 72 20 62 75 66 66    .;Parameter buff
00FED0:  65 72 20 28 49 58 29 0D 0A 2E 64 65 73 62 75 66    er (IX)...desbuf
00FEE0:  09 64 73 20 39 36 09 09 09 09 09 3B 53 74 72 69    .ds 96.....;Stri
00FEF0:  6E 67 20 64 65 73 63 72 69 70 74 6F 72 20 62 75    ng descriptor bu
00FF00:  6C 64 20 61 2C 28 68 6C 29 3A 20 6C 64 20 28 69    ld a,(hl): ld (i
00FF10:  79 2B 30 29 2C 61 3A 20 69 6E 63 20 68 6C 0D 0A    y+0),a: inc hl..
00FF20:  09 6C 64 20 61 2C 28 68 6C 29 3A 20 6C 64 20 28    .ld a,(hl): ld (
00FF30:  69 79 2B 31 29 2C 61 3A 20 69 6E 63 20 68 6C 0D    iy+1),a: inc hl.
00FF40:  0A 09 6C 64 20 61 2C 28 68 6C 29 3A 20 6C 64 20    ..ld a,(hl): ld 
00FF50:  28 69 79 2B 32 29 2C 61 3A 20 69 6E 63 20 68 6C    (iy+2),a: inc hl
00FF60:  0D 0A 09 6C 64 20 61 2C 28 68 6C 29 3A 20 6C 64    ...ld a,(hl): ld
00FF70:  20 28 69 79 2B 33 29 2C 61 3A 20 69 6E 63 20 68     (iy+3),a: inc h
00FF80:  6C 0D 0A 09 6C 64 20 61 2C 28 68 6C 29 3A 20 6C    l...ld a,(hl): l
00FF90:  64 20 28 69 79 2B 34 29 2C 61 3A 20 69 6E 63 20    d (iy+4),a: inc 
00FFA0:  68 6C 0D 0A 09 6C 64 20 61 2C 28 68 6C 29 3A 20    hl...ld a,(hl): 
00FFB0:  6C 64 20 28 69 79 2B 35 29 2C 61 3A 20 69 6E 63    ld (iy+5),a: inc
00FFC0:  20 68 6C 0D 0A 09 6C 64 20 61 2C 28 68 6C 29 3A     hl...ld a,(hl):
00FFD0:  20 6C 64 20 28 69 79 2B 36 29 2C 61 3A 20 69 6E     ld (iy+6),a: in
00FFE0:  63 20 68 6C 0D 0A 09 6C 64 20 61 2C 28 68 6C 29    c hl...ld a,(hl)
00FFF0:  3A 20 6C 64 20 28 69 79 2B 37 29 2C 61 3A 20 63    : ld (iy+7),a: c
010000:  61 6C 6C 20 26 42 39 30 39 0D 0A 0D 0A 09 62 69    all &B909.....bi
010010:  74 20 30 2C 63 3A 20 63 61 6C 6C 20 6E 7A 2C 77    t 0,c: call nz,w
010020:  5F 62 6F 6C 64 0D 0A 09 62 69 74 20 31 2C 63 3A    _bold...bit 1,c:
010030:  20 63 61 6C 6C 20 6E 7A 2C 77 5F 74 68 69 6E 0D     call nz,w_thin.
010040:  0A 09 62 69 74 20 32 2C 63 3A 20 63 61 6C 6C 20    ..bit 2,c: call 
010050:  6E 7A 2C 77 5F 69 74 61 6C 0D 0A 09 62 69 74 20    nz,w_ital...bit 
010060:  33 2C 63 3A 20 63 61 6C 6C 20 6E 7A 2C 77 5F 75    3,c: call nz,w_u
010070:  6E 64 65 0D 0A 09 62 69 74 20 34 2C 63 3A 20 63    nde...bit 4,c: c
010080:  61 6C 6C 20 6E 7A 2C 77 5F 66 6C 69 70 0D 0A 09    all nz,w_flip...
010090:  6C 64 20 61 2C 32 35 35 3A 20 63 61 6C 6C 20 26    ld a,255: call &
0100A0:  42 42 35 41 0D 0A 0D 0A 2E 77 72 69 74 5F 63 09    BB5A.....writ_c.
0100B0:  69 6E 63 20 69 78 3A 20 64 65 63 20 62 3A 20 6A    inc ix: dec b: j
0100C0:  70 20 6E 7A 2C 77 72 69 74 5F 6C 0D 0A 09 6A 70    p nz,writ_l...jp
0100D0:  20 63 72 6C 66 0D 0A 0D 0A 2E 74 5F 62 6F 6C 64     crlf.....t_bold
0100E0:  09 6C 64 20 61 2C 63 3A 20 78 6F 72 20 20 31 3A    .ld a,c: xor  1:
0100F0:  20 6C 64 20 63 2C 61 3A 20 6A 70 20 77 72 69 74     ld c,a: jp writ
010100:  66 66 65 72 0D 0A 2E 73 74 72 62 75 66 09 64 73    ffer...strbuf.ds
010110:  20 36 35 09 09 09 09 09 3B 41 63 74 75 61 6C 20     65.....;Actual 
010120:  73 74 72 69 6E 67 20 62 75 66 66 65 72 0D 0A 2E    string buffer...
010130:  63 62 75 66 66 09 64 73 20 36 35 09 09 09 09 09    cbuff.ds 65.....
010140:  3B 49 6E 70 75 74 20 62 75 66 66 65 72 0D 0A 0D    ;Input buffer...
010150:  0A 2E 70 61 72 70 6F 73 09 64 77 20 70 61 72 62    ..parpos.dw parb
010160:  75 66 2B 36 34 09 09 09 09 3B 43 75 72 72 65 6E    uf+64....;Curren
010170:  74 20 70 6F 73 69 74 69 6F 6E 20 69 6E 20 70 61    t position in pa
010180:  72 62 75 66 0D 0A 2E 64 65 73 70 6F 73 09 64 77    rbuf...despos.dw
010190:  20 64 65 73 62 75 66 09 09 09 09 3B 43 75 72 72     desbuf....;Curr
0101A0:  65 6E 74 20 70 6F 73 69 74 69 6F 6E 20 69 6E 20    ent position in 
0101B0:  64 65 73 62 75 66 0D 0A 2E 73 74 72 70 6F 73 09    desbuf...strpos.
0101C0:  64 77 20 73 74 72 62 75 66 09 09 09 09 3B 43 75    dw strbuf....;Cu
0101D0:  72 72 65 6E 74 20 70 6F 73 69 74 69 6F 6E 20 69    rrent position i
0101E0:  6E 20 73 74 72 62 75 66 0D 0A 0D 0A 2E 72 73 78    n strbuf.....rsx
0101F0:  66 61 72 09 64 73 20 33 09 09 09 09 09 3B 53 70    far.ds 3.....;Sp
010200:  61 63 65 20 66 6F 72 20 46 41 52 20 43 41 4C 4C    ace for FAR CALL
010210:  20 61 64 64 72 65 73 73 0D 0A 2E 62 72 6B 74 78     address...brktx
010220:  74 09 64 62 20 22 2A 42 72 65 61 6B 2A 22 2C 30    t.db "*Break*",0
010230:  0D 0A 0D 0A 09 3B 2A 2A 2A 20 52 53 58 09 7C 45    .....;*** RSX.|E
010240:  58 45 43 2C 66 69 6C 65 6E 61 6D 65 24 0D 0A 0D    XEC,filename$...
010250:  0A 2E 65 78 65 63 5F 69 09 63 70 20 30 3A 20 6A    ..exec_i.cp 0: j
010260:  72 20 7A 20 2C 65 78 65 63 30 0D 0A 09 63 70 20    r z ,exec0...cp 
010270:  31 3A 20 6A 70 20 6E 7A 2C 70 61 72 65 72 72 0D    1: jp nz,parerr.
010280:  0A 0D 0A 09 6C 64 20 6C 2C 28 69 78 29 3A 20 6C    ....ld l,(ix): l
010290:  64 20 68 2C 28 69 78 2B 31 29 0D 0A 09 6C 64 20    d h,(ix+1)...ld 
0102A0:  62 2C 28 68 6C 29 3A 20 69 6E 63 20 68 6C 0D 0A    b,(hl): inc hl..
0102B0:  09 6C 64 20 65 2C 28 68 6C 29 3A 20 69 6E 63 20    .ld e,(hl): inc 
0102C0:  68 6C 0D 0A 09 6C 64 20 64 2C 28 68 6C 29 3A 20    hl...ld d,(hl): 
0102D0:  69 6E 63 20 68 6C 0D 0A 09 6A 72 20 65 78 65 63    inc hl...jr exec
0102E0:  5F 6F 0D 0A 0D 0A 2E 65 78 65 63 30 09 6C 64 20    _o.....exec0.ld 
0102F0:  68 6C 2C 64 65 66 61 75 6C 74 3A 20 6C 64 20 62    hl,default: ld b
010300:  5F 63 0D 0A 2E 74 5F 74 68 69 6E 09 6C 64 20 61    _c...t_thin.ld a
010310:  2C 63 3A 20 78 6F 72 20 20 32 3A 20 6C 64 20 63    ,c: xor  2: ld c
010320:  2C 61 3A 20 6A 70 20 77 72 69 74 5F 63 0D 0A 2E    ,a: jp writ_c...
010330:  74 5F 69 74 61 6C 09 6C 64 20 61 2C 63 3A 20 78    t_ital.ld a,c: x
010340:  6F 72 20 20 34 3A 20 6C 64 20 63 2C 61 3A 20 6A    or  4: ld c,a: j
010350:  70 20 77 72 69 74 5F 63 0D 0A 2E 74 5F 75 6E 64    p writ_c...t_und
010360:  65 09 6C 64 20 61 2C 63 3A 20 78 6F 72 20 20 38    e.ld a,c: xor  8
010370:  3A 20 6C 64 20 63 2C 61 3A 20 6A 70 20 77 72 69    : ld c,a: jp wri
010380:  74 5F 63 0D 0A 2E 74 5F 66 6C 69 70 09 6C 64 20    t_c...t_flip.ld 
010390:  61 2C 63 3A 20 78 6F 72 20 31 36 3A 20 6C 64 20    a,c: xor 16: ld 
0103A0:  63 2C 61 3A 20 6A 70 20 77 72 69 74 5F 63 0D 0A    c,a: jp writ_c..
0103B0:  0D 0A 2E 77 5F 62 6F 6C 64 09 6C 64 20 61 2C 28    ...w_bold.ld a,(
0103C0:  69 79 2B 30 29 3A 20 6F 72 20 61 3A 20 72 72 20    iy+0): or a: rr 
0103D0:  61 3A 20 6F 72 20 28 69 79 2B 30 29 3A 20 6C 64    a: or (iy+0): ld
0103E0:  20 28 69 79 2B 30 29 2C 61 0D 0A 09 6C 64 20 61     (iy+0),a...ld a
0103F0:  2C 28 69 79 2B 31 29 3A 20 6F 72 20 61 3A 20 72    ,(iy+1): or a: r
010400:  72 20 61 3A 20 6F 72 20 28 69 79 2B 31 29 3A 20    r a: or (iy+1): 
010410:  6C 64 20 28 69 79 2B 31 29 2C 61 0D 0A 09 6C 64    ld (iy+1),a...ld
010420:  20 61 2C 28 69 79 2B 32 29 3A 20 6F 72 20 61 3A     a,(iy+2): or a:
010430:  20 72 72 20 61 3A 20 6F 72 20 28 69 79 2B 32 29     rr a: or (iy+2)
010440:  3A 20 6C 64 20 28 69 79 2B 32 29 2C 61 0D 0A 09    : ld (iy+2),a...
010450:  6C 64 20 61 2C 28 69 79 2B 33 29 3A 20 6F 72 20    ld a,(iy+3): or 
010460:  61 3A 20 72 72 20 61 3A 20 6F 72 20 28 69 79 2B    a: rr a: or (iy+
010470:  33 29 3A 20 6C 64 20 28 69 79 2B 33 29 2C 61 0D    3): ld (iy+3),a.
010480:  0A 09 6C 64 20 61 2C 28 69 79 2B 34 29 3A 20 6F    ..ld a,(iy+4): o
010490:  72 20 61 3A 20 72 72 20 61 3A 20 6F 72 20 28 69    r a: rr a: or (i
0104A0:  79 2B 34 29 3A 20 6C 64 20 28 69 79 2B 34 29 2C    y+4): ld (iy+4),
0104B0:  61 0D 0A 09 6C 64 20 61 2C 28 69 79 2B 35 29 3A    a...ld a,(iy+5):
0104C0:  20 6F 72 20 61 3A 20 72 72 20 61 3A 20 6F 72 20     or a: rr a: or 
0104D0:  28 69 79 2B 35 29 3A 20 6C 64 20 28 69 79 2B 35    (iy+5): ld (iy+5
0104E0:  29 2C 61 0D 0A 09 6C 64 20 61 2C 28 69 79 2B 36    ),a...ld a,(iy+6
0104F0:  29 3A 20 6F 72 20 61 3A 20 72 72 20 61 3A 20 6F    ): or a: rr a: o
010500:  2C 39 0D 0A 0D 0A 2E 65 78 65 63 5F 6F 09 6C 64    ,9.....exec_o.ld
010510:  20 64 65 2C 62 75 66 66 65 72 0D 0A 09 63 61 6C     de,buffer...cal
010520:  6C 20 26 42 43 37 37 3A 20 6A 70 20 6E 63 2C 65    l &BC77: jp nc,e
010530:  72 72 6F 72 0D 0A 0D 0A 2E 65 78 65 63 6F 6C 09    rror.....execol.
010540:  6C 64 20 69 79 2C 63 62 75 66 66 3A 20 6C 64 20    ld iy,cbuff: ld 
010550:  62 2C 30 0D 0A 2E 65 78 65 63 69 6C 09 63 61 6C    b,0...execil.cal
010560:  6C 20 26 42 43 38 30 3A 20 6A 70 20 6E 63 2C 65    l &BC80: jp nc,e
010570:  78 63 65 6F 66 0D 0A 09 63 70 20 31 33 20 20 3A    xceof...cp 13  :
010580:  20 6A 72 20 7A 20 2C 70 72 6F 63 63 72 0D 0A 09     jr z ,proccr...
010590:  63 70 20 31 30 20 20 3A 20 6A 72 20 7A 20 2C 64    cp 10  : jr z ,d
0105A0:  65 61 6C 74 77 0D 0A 09 63 70 20 22 5E 22 20 3A    ealtw...cp "^" :
0105B0:  20 6A 72 20 7A 20 2C 63 6F 6E 74 72 6C 0D 0A 09     jr z ,contrl...
0105C0:  62 69 74 20 36 2C 62 3A 20 6A 72 20 6E 7A 2C 64    bit 6,b: jr nz,d
0105D0:  65 61 6C 74 77 0D 0A 2E 64 65 61 6C 09 6C 64 20    ealtw...deal.ld 
0105E0:  28 69 79 29 2C 61 3A 20 69 6E 63 20 69 79 3A 20    (iy),a: inc iy: 
0105F0:  69 6E 63 20 62 0D 0A 2E 64 65 61 6C 74 77 09 63    inc b...dealtw.c
010600:  70 20 31 30 20 20 3A 20 6A 72 20 6E 7A 2C 65 78    p 10  : jr nz,ex
010610:  65 63 69 6C 0D 0A 09 63 61 6C 6C 20 63 6C 69 5F    ecil...call cli_
010620:  64 6F 0D 0A 09 6A 72 20 65 78 65 63 6F 6C 0D 0A    do...jr execol..
010630:  0D 0A 2E 65 78 63 65 6F 66 09 63 61 6C 6C 20 26    ...exceof.call &
010640:  42 43 37 41 0D 0A 09 72 65 74 0D 0A 0D 0A 2E 63    BC7A...ret.....c
010650:  6F 6E 74 72 6C 09 63 61 6C 6C 20 26 42 43 38 30    ontrl.call &BC80
010660:  3A 20 6A 70 20 6E 63 2C 65 78 63 65 6F 66 3A 20    : jp nc,exceof: 
010670:  61 6E 64 20 33 31 3A 20 6A 70 20 64 65 61 6C 09    and 31: jp deal.
010680:  3B 48 61 6E 64 6C 65 20 63 6F 6E 74 72 6F 6C 20    ;Handle control 
010690:  63 6F 64 65 73 0D 0A 2E 70 72 6F 63 63 72 09 6C    codes...proccr.l
0106A0:  64 20 61 2C 32 35 35 3A 20 6A 70 20 64 65 61 6C    d a,255: jp deal
0106B0:  09 09 09 09 3B 48 61 6E 64 6C 65 20 63 61 72 72    ....;Handle carr
0106C0:  69 61 67 65 20 72 65 74 75 72 6E 0D 0A 0D 0A 2E    iage return.....
0106D0:  64 65 66 61 75 6C 74 20 64 62 20 22 23 45 58 45    default db "#EXE
0106E0:  43 2E 42 41 54 22 0D 0A 0D 0A 09 3B 2A 2A 2A 20    C.BAT".....;*** 
0106F0:  52 53 58 09 7C 4B 45 59 2C 74 6F 6B 65 6E 2C 73    RSX.|KEY,token,s
010700:  72 20 28 69 79 2B 36 29 3A 20 6C 64 20 28 69 79    r (iy+6): ld (iy
010710:  2B 36 29 2C 61 0D 0A 09 6C 64 20 61 2C 28 69 79    +6),a...ld a,(iy
010720:  2B 37 29 3A 20 6F 72 20 61 3A 20 72 72 20 61 3A    +7): or a: rr a:
010730:  20 6F 72 20 28 69 79 2B 37 29 3A 20 6C 64 20 28     or (iy+7): ld (
010740:  69 79 2B 37 29 2C 61 0D 0A 09 72 65 74 0D 0A 0D    iy+7),a...ret...
010750:  0A 2E 77 5F 74 68 69 6E 09 6C 64 20 61 2C 28 69    ..w_thin.ld a,(i
010760:  79 2B 30 29 3A 20 6F 72 20 61 3A 20 72 72 20 61    y+0): or a: rr a
010770:  3A 20 61 6E 64 20 28 69 79 2B 30 29 3A 20 6C 64    : and (iy+0): ld
010780:  20 28 69 79 2B 30 29 2C 61 0D 0A 09 6C 64 20 61     (iy+0),a...ld a
010790:  2C 28 69 79 2B 31 29 3A 20 6F 72 20 61 3A 20 72    ,(iy+1): or a: r
0107A0:  72 20 61 3A 20 61 6E 64 20 28 69 79 2B 31 29 3A    r a: and (iy+1):
0107B0:  20 6C 64 20 28 69 79 2B 31 29 2C 61 0D 0A 09 6C     ld (iy+1),a...l
0107C0:  64 20 61 2C 28 69 79 2B 32 29 3A 20 6F 72 20 61    d a,(iy+2): or a
0107D0:  3A 20 72 72 20 61 3A 20 61 6E 64 20 28 69 79 2B    : rr a: and (iy+
0107E0:  32 29 3A 20 6C 64 20 28 69 79 2B 32 29 2C 61 0D    2): ld (iy+2),a.
0107F0:  0A 09 6C 64 20 61 2C 28 69 79 2B 33 29 3A 20 6F    ..ld a,(iy+3): o
010800:  72 20 61 3A 20 72 72 20 61 3A 20 61 6E 64 20 28    r a: rr a: and (
010810:  69 79 2B 33 29 3A 20 6C 64 20 28 69 79 2B 33 29    iy+3): ld (iy+3)
010820:  2C 61 0D 0A 09 6C 64 20 61 2C 28 69 79 2B 34 29    ,a...ld a,(iy+4)
010830:  3A 20 6F 72 20 61 3A 20 72 72 20 61 3A 20 61 6E    : or a: rr a: an
010840:  64 20 28 69 79 2B 34 29 3A 20 6C 64 20 28 69 79    d (iy+4): ld (iy
010850:  2B 34 29 2C 61 0D 0A 09 6C 64 20 61 2C 28 69 79    +4),a...ld a,(iy
010860:  2B 35 29 3A 20 6F 72 20 61 3A 20 72 72 20 61 3A    +5): or a: rr a:
010870:  20 61 6E 64 20 28 69 79 2B 35 29 3A 20 6C 64 20     and (iy+5): ld 
010880:  28 69 79 2B 35 29 2C 61 0D 0A 09 6C 64 20 61 2C    (iy+5),a...ld a,
010890:  28 69 79 2B 36 29 3A 20 6F 72 20 61 3A 20 72 72    (iy+6): or a: rr
0108A0:  20 61 3A 20 61 6E 64 20 28 69 79 2B 36 29 3A 20     a: and (iy+6): 
0108B0:  6C 64 20 28 69 79 2B 36 29 2C 61 0D 0A 09 6C 64    ld (iy+6),a...ld
0108C0:  20 61 2C 28 69 79 2B 37 29 3A 20 6F 72 20 61 3A     a,(iy+7): or a:
0108D0:  20 72 72 20 61 3A 20 61 6E 64 20 28 69 79 2B 37     rr a: and (iy+7
0108E0:  29 3A 20 6C 64 20 28 69 79 2B 37 29 2C 61 0D 0A    ): ld (iy+7),a..
0108F0:  09 72 65 74 0D 0A 0D 0A 2E 77 5F 69 74 61 6C 09    .ret.....w_ital.
010900:  74 72 69 6E 67 0D 0A 0D 0A 2E 6B 65 79 63 5F 69    tring.....keyc_i
010910:  09 63 70 20 32 3A 20 6A 70 20 6E 7A 2C 70 61 72    .cp 2: jp nz,par
010920:  65 72 72 0D 0A 09 6C 64 20 6C 2C 28 69 78 29 3A    err...ld l,(ix):
010930:  20 6C 64 20 68 2C 28 69 78 2B 31 29 0D 0A 09 6C     ld h,(ix+1)...l
010940:  64 20 63 2C 28 68 6C 29 3A 20 69 6E 63 20 68 6C    d c,(hl): inc hl
010950:  0D 0A 09 6C 64 20 65 2C 28 68 6C 29 3A 20 69 6E    ...ld e,(hl): in
010960:  63 20 68 6C 0D 0A 09 6C 64 20 64 2C 28 68 6C 29    c hl...ld d,(hl)
010970:  3A 20 65 78 20 64 65 2C 68 6C 0D 0A 09 6C 64 20    : ex de,hl...ld 
010980:  62 2C 28 69 78 2B 32 29 3A 20 63 61 6C 6C 20 26    b,(ix+2): call &
010990:  42 42 30 46 0D 0A 09 6A 70 20 6E 63 2C 6B 65 79    BB0F...jp nc,key
0109A0:  65 72 72 3A 20 72 65 74 0D 0A 0D 0A 09 3B 2A 2A    err: ret.....;**
0109B0:  2A 20 52 53 58 09 7C 50 55 54 4B 45 59 2C 63 68    * RSX.|PUTKEY,ch
0109C0:  61 72 61 63 74 65 72 0D 0A 0D 0A 2E 70 75 74 6B    aracter.....putk
0109D0:  5F 69 09 63 70 20 31 3A 20 6A 70 20 6E 7A 2C 70    _i.cp 1: jp nz,p
0109E0:  61 72 65 72 72 0D 0A 09 6C 64 20 6C 2C 28 69 78    arerr...ld l,(ix
0109F0:  29 3A 20 6C 64 20 68 2C 28 69 78 2B 31 29 0D 0A    ): ld h,(ix+1)..
010A00:  09 6C 64 20 61 2C 68 3A 20 6F 72 20 61 3A 20 6C    .ld a,h: or a: l
010A10:  64 20 61 2C 6C 3A 20 6A 70 20 7A 2C 26 42 42 30    d a,l: jp z,&BB0
010A20:  43 0D 0A 0D 0A 09 69 6E 63 20 68 6C 3A 20 6C 64    C.....inc hl: ld
010A30:  20 65 2C 28 68 6C 29 0D 0A 09 69 6E 63 20 68 6C     e,(hl)...inc hl
010A40:  3A 20 6C 64 20 64 2C 28 68 6C 29 0D 0A 09 6C 64    : ld d,(hl)...ld
010A50:  20 61 2C 28 64 65 29 3A 20 6A 70 20 26 42 42 30     a,(de): jp &BB0
010A60:  43 0D 0A 0D 0A 09 3B 2A 2A 2A 20 52 53 58 09 7C    C.....;*** RSX.|
010A70:  4D 4F 44 45 2C 20 7C 49 4E 4B 2C 20 7C 42 4F 52    MODE, |INK, |BOR
010A80:  44 45 52 0D 0A 0D 0A 2E 6D 6F 64 65 5F 69 09 63    DER.....mode_i.c
010A90:  70 20 31 3A 20 6A 70 20 6E 7A 2C 70 61 72 65 72    p 1: jp nz,parer
010AA0:  72 3A 20 6C 64 20 61 2C 28 69 78 29 3A 20 6A 70    r: ld a,(ix): jp
010AB0:  20 26 42 43 30 45 0D 0A 2E 69 6E 6B 63 5F 69 09     &BC0E...inkc_i.
010AC0:  63 70 20 32 3A 20 6A 70 20 6E 7A 2C 70 61 72 65    cp 2: jp nz,pare
010AD0:  72 72 3A 20 6C 64 20 61 2C 28 69 78 2B 32 29 3A    rr: ld a,(ix+2):
010AE0:  20 6C 64 20 62 2C 28 69 78 29 3A 20 6C 64 20 63     ld b,(ix): ld c
010AF0:  2C 62 3A 20 6A 70 20 26 42 43 33 32 0D 0A 2E 62    ,b: jp &BC32...b
010B00:  54 72 61 63 6B 2D 49 6E 66 6F 0D 0A 00 00 00 00    Track-Info......
010B10:  0E 00 01 00 02 09 4E E5 0E 00 C3 02 00 00 00 02    ......N.........
010B20:  0E 00 C8 02 00 00 00 02 0E 00 C4 02 00 00 00 02    ................
010B30:  0E 00 C9 02 00 00 00 02 0E 00 C5 02 00 00 00 02    ................
010B40:  0E 00 C1 02 00 00 00 02 0E 00 C6 02 00 00 00 02    ................
010B50:  0E 00 C2 02 00 00 00 02 0E 00 C7 02 00 00 00 02    ................
010B60:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
010B70:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
010B80:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
010B90:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
010BA0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
010BB0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
010BC0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
010BD0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
010BE0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
010BF0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
010C00:  61 2C 30 3A 20 63 61 6C 6C 20 26 42 42 39 36 0D    a,0: call &BB96.
010C10:  0A 09 70 6F 70 20 69 78 0D 0A 0D 0A 09 70 75 73    ..pop ix.....pus
010C20:  68 20 69 78 3A 20 6C 64 20 63 2C 38 0D 0A 2E 67    h ix: ld c,8...g
010C30:  63 5F 6F 6C 70 09 20 6C 64 20 64 2C 28 69 78 29    c_olp. ld d,(ix)
010C40:  3A 20 6C 64 20 62 2C 38 0D 0A 2E 67 63 5F 69 6C    : ld b,8...gc_il
010C50:  70 09 20 72 6C 20 64 3A 20 6C 64 20 61 2C 22 20    p. rl d: ld a," 
010C60:  22 3A 20 6A 72 20 6E 63 2C 67 6F 74 63 68 72 0D    ": jr nc,gotchr.
010C70:  0A 09 20 6C 64 20 61 2C 32 33 33 0D 0A 2E 67 6F    .. ld a,233...go
010C80:  74 63 68 72 09 20 63 61 6C 6C 20 26 42 42 35 41    tchr. call &BB5A
010C90:  3A 20 64 6A 6E 7A 20 67 63 5F 69 6C 70 0D 0A 09    : djnz gc_ilp...
010CA0:  20 63 61 6C 6C 20 63 72 6C 66 20 3A 20 69 6E 63     call crlf : inc
010CB0:  20 69 78 3A 20 64 65 63 20 63 3A 20 6A 72 20 6E     ix: dec c: jr n
010CC0:  7A 2C 67 63 5F 6F 6C 70 0D 0A 09 70 6F 70 20 69    z,gc_olp...pop i
010CD0:  78 0D 0A 0D 0A 09 70 75 73 68 20 69 78 0D 0A 09    x.....push ix...
010CE0:  20 6C 64 20 68 6C 2C 26 30 31 30 31 3A 20 6C 64     ld hl,&0101: ld
010CF0:  20 64 2C 31 32 38 0D 0A 2E 65 6B 65 79 6C 70 09     d,128...ekeylp.
010D00:  20 70 75 73 68 20 68 6C 3A 20 63 61 6C 6C 20 26     push hl: call &
010D10:  42 42 37 35 3A 20 63 61 6C 6C 20 26 42 42 38 41    BB75: call &BB8A
010D20:  3A 20 70 6F 70 20 68 6C 0D 0A 09 20 63 61 6C 6C    : pop hl... call
010D30:  20 26 42 42 30 36 0D 0A 09 20 70 75 73 68 20 61     &BB06... push a
010D40:  66 3A 20 63 61 6C 6C 20 26 42 42 38 41 3A 20 70    f: call &BB8A: p
010D50:  6F 70 20 61 66 0D 0A 09 20 63 70 20 31 33 20 3A    op af... cp 13 :
010D60:  20 6A 72 20 7A 2C 65 5F 65 78 69 74 0D 0A 09 20     jr z,e_exit... 
010D70:  63 70 20 32 32 34 3A 20 6A 72 20 7A 2C 65 5F 69    cp 224: jr z,e_i
010D80:  6E 76 74 0D 0A 09 20 63 70 20 32 34 30 3A 20 6A    nvt... cp 240: j
010D90:  72 20 7A 2C 65 5F 75 70 0D 0A 09 20 63 70 20 32    r z,e_up... cp 2
010DA0:  34 31 3A 20 6A 72 20 7A 2C 65 5F 64 6F 77 6E 0D    41: jr z,e_down.
010DB0:  0A 09 20 63 70 20 32 34 32 3A 20 6A 72 20 7A 2C    .. cp 242: jr z,
010DC0:  65 5F 6C 65 66 74 0D 0A 09 20 63 70 20 32 34 33    e_left... cp 243
010DD0:  3A 20 6A 72 20 7A 2C 65 5F 72 67 68 74 0D 0A 09    : jr z,e_rght...
010DE0:  20 6A 72 20 65 6B 65 79 6C 70 0D 0A 0D 0A 2E 65     jr ekeylp.....e
010DF0:  5F 75 70 09 20 6C 64 20 61 2C 6C 3A 20 63 70 20    _up. ld a,l: cp 
010E00:  79 6E 63 0D 0A 0D 0A 2E 68 6C 77 72 5F 69 09 63    ync.....hlwr_i.c
010E10:  70 20 33 3A 20 6A 70 20 6E 7A 2C 70 61 72 65 72    p 3: jp nz,parer
010E20:  72 0D 0A 09 6C 64 20 6C 2C 28 69 78 2B 34 29 3A    r...ld l,(ix+4):
010E30:  20 6C 64 20 68 2C 28 69 78 2B 35 29 0D 0A 09 6C     ld h,(ix+5)...l
010E40:  64 20 65 2C 28 69 78 2B 32 29 3A 20 6C 64 20 64    d e,(ix+2): ld d
010E50:  2C 28 69 78 2B 33 29 0D 0A 09 6C 64 20 61 2C 28    ,(ix+3)...ld a,(
010E60:  69 78 2B 30 29 3A 20 63 61 6C 6C 20 26 42 43 39    ix+0): call &BC9
010E70:  45 0D 0A 09 72 65 74 20 63 0D 0A 0D 0A 09 63 70    E...ret c.....cp
010E80:  20 30 3A 20 6A 70 20 7A 2C 65 73 63 65 72 72 0D     0: jp z,escerr.
010E90:  0A 09 63 70 20 31 3A 20 6A 70 20 7A 2C 6F 76 72    ..cp 1: jp z,ovr
010EA0:  65 72 72 0D 0A 09 72 65 74 0D 0A 0D 0A 09 3B 2A    err...ret.....;*
010EB0:  2A 2A 20 52 53 58 09 7C 48 4C 2E 52 45 41 44 2C    ** RSX.|HL.READ,
010EC0:  73 6F 75 72 63 65 2C 6C 65 6E 67 74 68 2C 73 79    source,length,sy
010ED0:  6E 63 0D 0A 0D 0A 2E 68 6C 72 64 5F 69 09 63 70    nc.....hlrd_i.cp
010EE0:  20 33 3A 20 6A 70 20 6E 7A 2C 70 61 72 65 72 72     3: jp nz,parerr
010EF0:  0D 0A 09 6C 64 20 6C 2C 28 69 78 2B 34 29 3A 20    ...ld l,(ix+4): 
010F00:  6C 64 20 68 2C 28 69 78 2B 35 29 0D 0A 09 6C 64    ld h,(ix+5)...ld
010F10:  20 65 2C 28 69 78 2B 32 29 3A 20 6C 64 20 64 2C     e,(ix+2): ld d,
010F20:  28 69 78 2B 33 29 0D 0A 09 6C 64 20 61 2C 28 69    (ix+3)...ld a,(i
010F30:  78 2B 30 29 3A 20 63 61 6C 6C 20 26 42 43 41 31    x+0): call &BCA1
010F40:  0D 0A 09 72 65 74 20 63 0D 0A 0D 0A 09 63 70 20    ...ret c.....cp 
010F50:  30 3A 20 6A 70 20 7A 2C 65 73 63 65 72 72 0D 0A    0: jp z,escerr..
010F60:  09 63 70 20 31 3A 20 6A 70 20 7A 2C 6F 76 72 65    .cp 1: jp z,ovre
010F70:  72 72 0D 0A 09 63 70 20 32 3A 20 6A 70 20 7A 2C    rr...cp 2: jp z,
010F80:  63 72 63 65 72 72 0D 0A 09 72 65 74 0D 0A 0D 0A    crcerr...ret....
010F90:  09 3B 2A 2A 2A 20 52 53 58 09 7C 55 53 45 52 2C    .;*** RSX.|USER,
010FA0:  6E 0D 0A 0D 0A 2E 75 73 65 72 5F 69 09 63 70 20    n.....user_i.cp 
010FB0:  31 3A 20 6A 70 20 6E 7A 2C 70 61 72 65 72 72 0D    1: jp nz,parerr.
010FC0:  0A 09 6C 64 20 68 6C 2C 28 26 42 45 37 44 29 3A    ..ld hl,(&BE7D):
010FD0:  20 69 6E 63 20 68 6C 0D 0A 09 6C 64 20 61 2C 28     inc hl...ld a,(
010FE0:  69 78 29 3A 20 6C 64 20 28 68 6C 29 2C 61 0D 0A    ix): ld (hl),a..
010FF0:  09 72 65 74 0D 0A 0D 0A 09 3B 2A 2A 2A 20 52 53    .ret.....;*** RS
011000:  31 3A 20 6A 72 20 7A 2C 65 6B 65 79 6C 70 3A 20    1: jr z,ekeylp: 
011010:  64 65 63 20 6C 3A 20 64 65 63 20 69 78 3A 20 6A    dec l: dec ix: j
011020:  72 20 65 6B 65 79 6C 70 0D 0A 2E 65 5F 64 6F 77    r ekeylp...e_dow
011030:  6E 09 20 6C 64 20 61 2C 6C 3A 20 63 70 20 38 3A    n. ld a,l: cp 8:
011040:  20 6A 72 20 7A 2C 65 6B 65 79 6C 70 3A 20 69 6E     jr z,ekeylp: in
011050:  63 20 6C 3A 20 69 6E 63 20 69 78 3A 20 6A 72 20    c l: inc ix: jr 
011060:  65 6B 65 79 6C 70 0D 0A 2E 65 5F 6C 65 66 74 09    ekeylp...e_left.
011070:  20 6C 64 20 61 2C 68 3A 20 63 70 20 31 3A 20 6A     ld a,h: cp 1: j
011080:  72 20 7A 2C 65 6B 65 79 6C 70 3A 20 64 65 63 20    r z,ekeylp: dec 
011090:  68 3A 20 72 6C 63 20 64 20 3A 20 6A 72 20 65 6B    h: rlc d : jr ek
0110A0:  65 79 6C 70 0D 0A 2E 65 5F 72 67 68 74 09 20 6C    eylp...e_rght. l
0110B0:  64 20 61 2C 68 3A 20 63 70 20 38 3A 20 6A 72 20    d a,h: cp 8: jr 
0110C0:  7A 2C 65 6B 65 79 6C 70 3A 20 69 6E 63 20 68 3A    z,ekeylp: inc h:
0110D0:  20 72 72 63 20 64 20 3A 20 6A 72 20 65 6B 65 79     rrc d : jr ekey
0110E0:  6C 70 0D 0A 2E 65 5F 69 6E 76 74 09 20 6C 64 20    lp...e_invt. ld 
0110F0:  61 2C 28 69 78 29 3A 20 78 6F 72 20 64 3A 20 6C    a,(ix): xor d: l
011100:  64 20 28 69 78 29 2C 61 0D 0A 09 20 6C 64 20 63    d (ix),a... ld c
011110:  2C 22 20 22 3A 20 61 6E 64 20 64 3A 20 6A 72 20    ," ": and d: jr 
011120:  7A 2C 65 67 74 63 68 72 0D 0A 09 20 6C 64 20 63    z,egtchr... ld c
011130:  2C 32 33 33 0D 0A 2E 65 67 74 63 68 72 09 20 6C    ,233...egtchr. l
011140:  64 20 61 2C 63 3A 20 63 61 6C 6C 20 26 42 42 35    d a,c: call &BB5
011150:  41 3A 20 6A 72 20 65 6B 65 79 6C 70 0D 0A 0D 0A    A: jr ekeylp....
011160:  2E 65 5F 65 78 69 74 09 20 6C 64 20 61 2C 31 3A    .e_exit. ld a,1:
011170:  20 63 61 6C 6C 20 26 42 43 30 45 0D 0A 09 70 6F     call &BC0E...po
011180:  70 20 69 78 0D 0A 09 6C 64 20 61 2C 22 26 22 3A    p ix...ld a,"&":
011190:  20 63 61 6C 6C 20 26 42 42 35 41 3A 20 6C 64 20     call &BB5A: ld 
0111A0:  61 2C 28 69 78 29 3A 20 63 61 6C 6C 20 68 65 78    a,(ix): call hex
0111B0:  70 72 74 3A 20 6C 64 20 61 2C 22 2C 22 3A 20 63    prt: ld a,",": c
0111C0:  61 6C 6C 20 26 42 42 35 41 3A 20 69 6E 63 20 69    all &BB5A: inc i
0111D0:  78 0D 0A 09 6C 64 20 61 2C 22 26 22 3A 20 63 61    x...ld a,"&": ca
0111E0:  6C 6C 20 26 42 42 35 41 3A 20 6C 64 20 61 2C 28    ll &BB5A: ld a,(
0111F0:  69 78 29 3A 20 63 61 6C 6C 20 68 65 78 70 72 74    ix): call hexprt
011200:  58 09 7C 43 4F 50 59 2C 73 6F 75 72 63 65 2C 64    X.|COPY,source,d
011210:  65 73 74 69 6E 61 74 69 6F 6E 2C 6C 65 6E 67 74    estination,lengt
011220:  68 0D 0A 0D 0A 2E 63 6F 70 79 5F 69 09 63 70 20    h.....copy_i.cp 
011230:  33 3A 20 6A 70 20 6E 7A 2C 70 61 72 65 72 72 0D    3: jp nz,parerr.
011240:  0A 09 6C 64 20 6C 2C 28 69 78 2B 34 29 3A 20 6C    ..ld l,(ix+4): l
011250:  64 20 68 2C 28 69 78 2B 35 29 0D 0A 09 6C 64 20    d h,(ix+5)...ld 
011260:  65 2C 28 69 78 2B 32 29 3A 20 6C 64 20 64 2C 28    e,(ix+2): ld d,(
011270:  69 78 2B 33 29 0D 0A 09 6F 72 20 61 3A 20 73 62    ix+3)...or a: sb
011280:  63 20 68 6C 2C 64 65 3A 20 6A 70 20 63 2C 63 6F    c hl,de: jp c,co
011290:  70 79 5F 64 0D 0A 0D 0A 09 6C 64 20 6C 2C 28 69    py_d.....ld l,(i
0112A0:  78 2B 34 29 3A 20 6C 64 20 68 2C 28 69 78 2B 35    x+4): ld h,(ix+5
0112B0:  29 0D 0A 09 6C 64 20 63 2C 28 69 78 2B 30 29 3A    )...ld c,(ix+0):
0112C0:  20 6C 64 20 62 2C 28 69 78 2B 31 29 0D 0A 09 6C     ld b,(ix+1)...l
0112D0:  64 69 72 3A 20 72 65 74 0D 0A 0D 0A 2E 63 6F 70    dir: ret.....cop
0112E0:  79 5F 64 09 6C 64 20 63 2C 28 69 78 2B 30 29 3A    y_d.ld c,(ix+0):
0112F0:  20 6C 64 20 62 2C 28 69 78 2B 31 29 0D 0A 09 6C     ld b,(ix+1)...l
011300:  64 20 6C 2C 28 69 78 2B 32 29 3A 20 6C 64 20 68    d l,(ix+2): ld h
011310:  2C 28 69 78 2B 33 29 3A 20 64 65 63 20 68 6C 3A    ,(ix+3): dec hl:
011320:  20 61 64 64 20 68 6C 2C 62 63 3A 20 65 78 20 64     add hl,bc: ex d
011330:  65 2C 68 6C 0D 0A 09 6C 64 20 6C 2C 28 69 78 2B    e,hl...ld l,(ix+
011340:  34 29 3A 20 6C 64 20 68 2C 28 69 78 2B 35 29 3A    4): ld h,(ix+5):
011350:  20 64 65 63 20 68 6C 3A 20 61 64 64 20 68 6C 2C     dec hl: add hl,
011360:  62 63 3A 20 6C 64 64 72 3A 20 72 65 74 0D 0A 0D    bc: lddr: ret...
011370:  0A 09 3B 2A 2A 2A 20 52 53 58 09 7C 46 49 4C 4C    ..;*** RSX.|FILL
011380:  2C 61 64 64 72 65 73 73 2C 6C 65 6E 67 74 68 2C    ,address,length,
011390:  62 79 74 65 0D 0A 0D 0A 2E 66 69 6C 6C 5F 69 09    byte.....fill_i.
0113A0:  63 70 20 33 3A 20 6A 70 20 6E 7A 2C 70 61 72 65    cp 3: jp nz,pare
0113B0:  72 72 0D 0A 09 6C 64 20 6C 2C 28 69 78 2B 34 29    rr...ld l,(ix+4)
0113C0:  3A 20 6C 64 20 68 2C 28 69 78 2B 35 29 0D 0A 09    : ld h,(ix+5)...
0113D0:  6C 64 20 61 2C 28 69 78 2B 30 29 3A 20 6C 64 20    ld a,(ix+0): ld 
0113E0:  28 68 6C 29 2C 61 0D 0A 0D 0A 09 70 75 73 68 20    (hl),a.....push 
0113F0:  68 6C 3A 20 70 6F 70 20 64 65 3A 20 69 6E 63 20    hl: pop de: inc 
011400:  3A 20 6C 64 20 61 2C 22 2C 22 3A 20 63 61 6C 6C    : ld a,",": call
011410:  20 26 42 42 35 41 3A 20 69 6E 63 20 69 78 0D 0A     &BB5A: inc ix..
011420:  09 6C 64 20 61 2C 22 26 22 3A 20 63 61 6C 6C 20    .ld a,"&": call 
011430:  26 42 42 35 41 3A 20 6C 64 20 61 2C 28 69 78 29    &BB5A: ld a,(ix)
011440:  3A 20 63 61 6C 6C 20 68 65 78 70 72 74 3A 20 6C    : call hexprt: l
011450:  64 20 61 2C 22 2C 22 3A 20 63 61 6C 6C 20 26 42    d a,",": call &B
011460:  42 35 41 3A 20 69 6E 63 20 69 78 0D 0A 09 6C 64    B5A: inc ix...ld
011470:  20 61 2C 22 26 22 3A 20 63 61 6C 6C 20 26 42 42     a,"&": call &BB
011480:  35 41 3A 20 6C 64 20 61 2C 28 69 78 29 3A 20 63    5A: ld a,(ix): c
011490:  61 6C 6C 20 68 65 78 70 72 74 3A 20 6C 64 20 61    all hexprt: ld a
0114A0:  2C 22 2C 22 3A 20 63 61 6C 6C 20 26 42 42 35 41    ,",": call &BB5A
0114B0:  3A 20 69 6E 63 20 69 78 0D 0A 09 6C 64 20 61 2C    : inc ix...ld a,
0114C0:  22 26 22 3A 20 63 61 6C 6C 20 26 42 42 35 41 3A    "&": call &BB5A:
0114D0:  20 6C 64 20 61 2C 28 69 78 29 3A 20 63 61 6C 6C     ld a,(ix): call
0114E0:  20 68 65 78 70 72 74 3A 20 6C 64 20 61 2C 22 2C     hexprt: ld a,",
0114F0:  22 3A 20 63 61 6C 6C 20 26 42 42 35 41 3A 20 69    ": call &BB5A: i
011500:  6E 63 20 69 78 0D 0A 09 6C 64 20 61 2C 22 26 22    nc ix...ld a,"&"
011510:  3A 20 63 61 6C 6C 20 26 42 42 35 41 3A 20 6C 64    : call &BB5A: ld
011520:  20 61 2C 28 69 78 29 3A 20 63 61 6C 6C 20 68 65     a,(ix): call he
011530:  78 70 72 74 3A 20 6C 64 20 61 2C 22 2C 22 3A 20    xprt: ld a,",": 
011540:  63 61 6C 6C 20 26 42 42 35 41 3A 20 69 6E 63 20    call &BB5A: inc 
011550:  69 78 0D 0A 09 6C 64 20 61 2C 22 26 22 3A 20 63    ix...ld a,"&": c
011560:  61 6C 6C 20 26 42 42 35 41 3A 20 6C 64 20 61 2C    all &BB5A: ld a,
011570:  28 69 78 29 3A 20 63 61 6C 6C 20 68 65 78 70 72    (ix): call hexpr
011580:  74 3A 20 6C 64 20 61 2C 22 2C 22 3A 20 63 61 6C    t: ld a,",": cal
011590:  6C 20 26 42 42 35 41 3A 20 69 6E 63 20 69 78 0D    l &BB5A: inc ix.
0115A0:  0A 09 6C 64 20 61 2C 22 26 22 3A 20 63 61 6C 6C    ..ld a,"&": call
0115B0:  20 26 42 42 35 41 3A 20 6C 64 20 61 2C 28 69 78     &BB5A: ld a,(ix
0115C0:  29 3A 20 63 61 6C 6C 20 68 65 78 70 72 74 3A 20    ): call hexprt: 
0115D0:  63 61 6C 6C 20 63 72 6C 66 0D 0A 09 72 65 74 0D    call crlf...ret.
0115E0:  0A 0D 0A 09 3B 2A 2A 2A 20 52 53 58 09 7C 46 52    ....;*** RSX.|FR
0115F0:  41 4D 45 0D 0A 0D 0A 2E 66 72 61 6D 5F 69 09 6A    AME.....fram_i.j
011600:  2C 63 68 72 65 72 72 0D 0A 09 70 75 73 68 20 68    ,chrerr...push h
011610:  6C 3A 20 70 6F 70 20 69 79 0D 0A 0D 0A 09 6C 64    l: pop iy.....ld
011620:  20 6C 2C 28 69 78 29 3A 20 6C 64 20 68 2C 28 69     l,(ix): ld h,(i
011630:  78 2B 31 29 0D 0A 09 6C 64 20 62 2C 28 68 6C 29    x+1)...ld b,(hl)
011640:  3A 20 69 6E 63 20 68 6C 0D 0A 09 6C 64 20 65 2C    : inc hl...ld e,
011650:  28 68 6C 29 3A 20 69 6E 63 20 68 6C 0D 0A 09 6C    (hl): inc hl...l
011660:  64 20 64 2C 28 68 6C 29 3A 20 70 75 73 68 20 64    d d,(hl): push d
011670:  65 3A 20 70 6F 70 20 69 78 0D 0A 0D 0A 09 6C 64    e: pop ix.....ld
011680:  20 61 2C 62 3A 20 6F 72 20 61 3A 20 72 65 74 20     a,b: or a: ret 
011690:  7A 0D 0A 0D 0A 2E 64 6F 75 62 5F 6C 09 6C 64 20    z.....doub_l.ld 
0116A0:  61 2C 28 69 78 29 3A 20 63 61 6C 6C 20 26 42 42    a,(ix): call &BB
0116B0:  41 35 3A 20 63 61 6C 6C 20 26 42 39 30 36 0D 0A    A5: call &B906..
0116C0:  09 6C 64 20 61 2C 28 68 6C 29 3A 20 6C 64 20 28    .ld a,(hl): ld (
0116D0:  69 79 2B 30 30 29 2C 61 3A 20 6C 64 20 28 69 79    iy+00),a: ld (iy
0116E0:  2B 30 31 29 2C 61 3A 20 69 6E 63 20 68 6C 0D 0A    +01),a: inc hl..
0116F0:  09 6C 64 20 61 2C 28 68 6C 29 3A 20 6C 64 20 28    .ld a,(hl): ld (
011700:  69 79 2B 30 32 29 2C 61 3A 20 6C 64 20 28 69 79    iy+02),a: ld (iy
011710:  2B 30 33 29 2C 61 3A 20 69 6E 63 20 68 6C 0D 0A    +03),a: inc hl..
011720:  09 6C 64 20 61 2C 28 68 6C 29 3A 20 6C 64 20 28    .ld a,(hl): ld (
011730:  69 79 2B 30 34 29 2C 61 3A 20 6C 64 20 28 69 79    iy+04),a: ld (iy
011740:  2B 30 35 29 2C 61 3A 20 69 6E 63 20 68 6C 0D 0A    +05),a: inc hl..
011750:  09 6C 64 20 61 2C 28 68 6C 29 3A 20 6C 64 20 28    .ld a,(hl): ld (
011760:  69 79 2B 30 36 29 2C 61 3A 20 6C 64 20 28 69 79    iy+06),a: ld (iy
011770:  2B 30 37 29 2C 61 3A 20 69 6E 63 20 68 6C 0D 0A    +07),a: inc hl..
011780:  09 6C 64 20 61 2C 28 68 6C 29 3A 20 6C 64 20 28    .ld a,(hl): ld (
011790:  69 79 2B 30 38 29 2C 61 3A 20 6C 64 20 28 69 79    iy+08),a: ld (iy
0117A0:  2B 30 39 29 2C 61 3A 20 69 6E 63 20 68 6C 0D 0A    +09),a: inc hl..
0117B0:  09 6C 64 20 61 2C 28 68 6C 29 3A 20 6C 64 20 28    .ld a,(hl): ld (
0117C0:  69 79 2B 31 30 29 2C 61 3A 20 6C 64 20 28 69 79    iy+10),a: ld (iy
0117D0:  2B 31 31 29 2C 61 3A 20 69 6E 63 20 68 6C 0D 0A    +11),a: inc hl..
0117E0:  09 6C 64 20 61 2C 28 68 6C 29 3A 20 6C 64 20 28    .ld a,(hl): ld (
0117F0:  69 79 2B 31 32 29 2C 61 3A 20 6C 64 20 28 69 79    iy+12),a: ld (iy
011800:  70 20 26 42 44 31 39 0D 0A 0D 0A 09 3B 2A 2A 2A    p &BD19.....;***
011810:  20 52 53 58 09 7C 43 55 52 53 4F 52 2C 73 79 73     RSX.|CURSOR,sys
011820:  74 65 6D 20 73 77 69 74 63 68 2C 75 73 65 72 20    tem switch,user 
011830:  73 77 69 74 63 68 0D 0A 0D 0A 2E 63 75 72 73 5F    switch.....curs_
011840:  69 09 63 70 20 31 3A 20 6A 72 20 7A 20 2C 63 75    i.cp 1: jr z ,cu
011850:  72 73 5F 31 0D 0A 09 63 70 20 32 3A 20 6A 70 20    rs_1...cp 2: jp 
011860:  6E 7A 2C 70 61 72 65 72 72 0D 0A 0D 0A 09 6C 64    nz,parerr.....ld
011870:  20 61 2C 28 69 78 29 3A 20 6F 72 20 61 3A 20 63     a,(ix): or a: c
011880:  61 6C 6C 20 7A 2C 26 42 42 37 45 3A 20 63 61 6C    all z,&BB7E: cal
011890:  6C 20 6E 7A 2C 26 42 42 37 42 0D 0A 09 69 6E 63    l nz,&BB7B...inc
0118A0:  20 69 78 3A 20 69 6E 63 20 69 78 0D 0A 2E 63 75     ix: inc ix...cu
0118B0:  72 73 5F 31 09 6C 64 20 61 2C 28 69 78 29 3A 20    rs_1.ld a,(ix): 
0118C0:  6F 72 20 61 3A 20 70 75 73 68 20 61 66 3A 20 63    or a: push af: c
0118D0:  61 6C 6C 20 7A 2C 26 42 42 38 34 3A 20 70 6F 70    all z,&BB84: pop
0118E0:  20 61 66 3A 20 63 61 6C 6C 20 6E 7A 2C 26 42 42     af: call nz,&BB
0118F0:  38 31 0D 0A 09 72 65 74 0D 0A 0D 0A 09 3B 2A 2A    81...ret.....;**
011900:  2A 20 52 53 58 09 7C 47 52 41 50 48 49 43 53 2E    * RSX.|GRAPHICS.
011910:  50 41 50 45 52 2C 63 6F 6C 6F 75 72 0D 0A 0D 0A    PAPER,colour....
011920:  2E 67 70 61 70 5F 69 09 63 70 20 31 3A 20 6A 70    .gpap_i.cp 1: jp
011930:  20 6E 7A 2C 70 61 72 65 72 72 0D 0A 09 6C 64 20     nz,parerr...ld 
011940:  61 2C 28 69 78 29 3A 20 6A 70 20 26 42 42 45 34    a,(ix): jp &BBE4
011950:  0D 0A 0D 0A 09 3B 2A 2A 2A 20 52 53 58 09 7C 47    .....;*** RSX.|G
011960:  52 41 50 48 49 43 53 2E 50 45 4E 2C 63 6F 6C 6F    RAPHICS.PEN,colo
011970:  75 72 0D 0A 0D 0A 2E 67 70 65 6E 5F 69 09 63 70    ur.....gpen_i.cp
011980:  20 31 3A 20 6A 70 20 6E 7A 2C 70 61 72 65 72 72     1: jp nz,parerr
011990:  0D 0A 09 6C 64 20 61 2C 28 69 78 29 3A 20 6A 70    ...ld a,(ix): jp
0119A0:  20 26 42 42 44 45 0D 0A 0D 0A 09 3B 2A 2A 2A 20     &BBDE.....;*** 
0119B0:  52 53 58 09 7C 43 4C 45 41 52 2E 49 4E 50 55 54    RSX.|CLEAR.INPUT
0119C0:  0D 0A 0D 0A 2E 63 6C 72 69 5F 69 09 63 61 6C 6C    .....clri_i.call
0119D0:  20 26 42 42 30 39 3A 20 6A 72 20 63 2C 63 6C 72     &BB09: jr c,clr
0119E0:  69 5F 69 3A 20 72 65 74 0D 0A 0D 0A 09 3B 2A 2A    i_i: ret.....;**
0119F0:  2A 20 52 53 58 09 7C 43 4F 50 59 2E 43 48 52 2C    * RSX.|COPY.CHR,
011A00:  2B 31 33 29 2C 61 3A 20 69 6E 63 20 68 6C 0D 0A    +13),a: inc hl..
011A10:  09 6C 64 20 61 2C 28 68 6C 29 3A 20 6C 64 20 28    .ld a,(hl): ld (
011A20:  69 79 2B 31 34 29 2C 61 3A 20 6C 64 20 28 69 79    iy+14),a: ld (iy
011A30:  2B 31 35 29 2C 61 0D 0A 09 6C 64 20 61 2C 32 35    +15),a...ld a,25
011A40:  34 3A 20 63 61 6C 6C 20 26 42 42 35 41 3A 20 63    4: call &BB5A: c
011A50:  61 6C 6C 20 26 42 39 30 39 0D 0A 09 6C 64 20 61    all &B909...ld a
011A60:  2C 31 30 20 3A 20 63 61 6C 6C 20 26 42 42 35 41    ,10 : call &BB5A
011A70:  3A 20 6C 64 20 61 2C 38 20 3A 20 63 61 6C 6C 20    : ld a,8 : call 
011A80:  26 42 42 35 41 0D 0A 09 6C 64 20 61 2C 32 35 35    &BB5A...ld a,255
011A90:  3A 20 63 61 6C 6C 20 26 42 42 35 41 3A 20 6C 64    : call &BB5A: ld
011AA0:  20 61 2C 31 31 3A 20 63 61 6C 6C 20 26 42 42 35     a,11: call &BB5
011AB0:  41 0D 0A 0D 0A 09 69 6E 63 20 69 78 3A 20 64 65    A.....inc ix: de
011AC0:  63 20 62 3A 20 6A 70 20 6E 7A 2C 64 6F 75 62 5F    c b: jp nz,doub_
011AD0:  6C 0D 0A 09 63 61 6C 6C 20 63 72 6C 66 3A 20 6A    l...call crlf: j
011AE0:  70 20 63 72 6C 66 0D 0A 0D 0A 09 3B 2A 2A 2A 20    p crlf.....;*** 
011AF0:  52 53 58 09 7C 45 44 49 54 2C 63 68 61 72 61 63    RSX.|EDIT,charac
011B00:  74 65 72 0D 0A 0D 0A 2E 65 64 69 74 5F 69 09 63    ter.....edit_i.c
011B10:  70 20 31 3A 20 6A 70 20 6E 7A 2C 70 61 72 65 72    p 1: jp nz,parer
011B20:  72 0D 0A 0D 0A 09 6C 64 20 6C 2C 28 69 78 29 3A    r.....ld l,(ix):
011B30:  20 6C 64 20 68 2C 28 69 78 2B 31 29 0D 0A 09 6C     ld h,(ix+1)...l
011B40:  64 20 61 2C 68 3A 20 6F 72 20 61 3A 20 6C 64 20    d a,h: or a: ld 
011B50:  61 2C 6C 3A 20 6A 72 20 7A 2C 67 6F 74 65 64 63    a,l: jr z,gotedc
011B60:  0D 0A 09 6C 64 20 61 2C 28 68 6C 29 3A 20 69 6E    ...ld a,(hl): in
011B70:  63 20 68 6C 0D 0A 09 6C 64 20 65 2C 28 68 6C 29    c hl...ld e,(hl)
011B80:  3A 20 69 6E 63 20 68 6C 0D 0A 09 6C 64 20 64 2C    : inc hl...ld d,
011B90:  28 68 6C 29 3A 20 6C 64 20 61 2C 28 64 65 29 0D    (hl): ld a,(de).
011BA0:  0A 0D 0A 2E 67 6F 74 65 64 63 09 63 61 6C 6C 20    ....gotedc.call 
011BB0:  26 42 42 41 35 3A 20 6A 70 20 6E 63 2C 63 68 72    &BBA5: jp nc,chr
011BC0:  65 72 72 0D 0A 09 70 75 73 68 20 68 6C 0D 0A 09    err...push hl...
011BD0:  20 6C 64 20 61 2C 31 3A 20 63 61 6C 6C 20 26 42     ld a,1: call &B
011BE0:  43 30 45 0D 0A 09 20 6C 64 20 61 2C 31 3A 20 63    C0E... ld a,1: c
011BF0:  61 6C 6C 20 26 42 42 39 30 0D 0A 09 20 6C 64 20    all &BB90... ld 
011C00:  40 61 0D 0A 0D 0A 2E 63 70 79 63 5F 69 09 63 70    @a.....cpyc_i.cp
011C10:  20 31 3A 20 6A 70 20 6E 7A 2C 70 61 72 65 72 72     1: jp nz,parerr
011C20:  0D 0A 09 63 61 6C 6C 20 26 42 42 36 30 0D 0A 09    ...call &BB60...
011C30:  6C 64 20 6C 2C 28 69 78 29 3A 20 6C 64 20 68 2C    ld l,(ix): ld h,
011C40:  28 69 78 2B 31 29 0D 0A 09 6C 64 20 28 68 6C 29    (ix+1)...ld (hl)
011C50:  2C 61 3A 20 69 6E 63 20 68 6C 3A 20 6C 64 20 28    ,a: inc hl: ld (
011C60:  68 6C 29 2C 30 3A 20 72 65 74 0D 0A 0D 0A 09 3B    hl),0: ret.....;
011C70:  2A 2A 2A 20 52 53 58 09 7C 53 45 43 54 4F 52 2E    *** RSX.|SECTOR.
011C80:  57 52 49 54 45 2C 73 6F 75 72 63 65 2C 64 72 69    WRITE,source,dri
011C90:  76 65 2C 74 72 61 63 6B 2C 73 65 63 74 6F 72 0D    ve,track,sector.
011CA0:  0A 0D 0A 2E 73 65 63 77 5F 69 09 63 70 20 34 3A    ....secw_i.cp 4:
011CB0:  20 6A 70 20 6E 7A 2C 70 61 72 65 72 72 0D 0A 09     jp nz,parerr...
011CC0:  6C 64 20 6C 2C 28 69 78 2B 36 29 3A 20 6C 64 20    ld l,(ix+6): ld 
011CD0:  68 2C 28 69 78 2B 37 29 0D 0A 09 6C 64 20 65 2C    h,(ix+7)...ld e,
011CE0:  28 69 78 2B 34 29 3A 20 6C 64 20 64 2C 28 69 78    (ix+4): ld d,(ix
011CF0:  2B 32 29 0D 0A 09 6C 64 20 63 2C 28 69 78 2B 30    +2)...ld c,(ix+0
011D00:  29 3A 20 72 73 74 20 33 2C 77 73 63 66 61 72 0D    ): rst 3,wscfar.
011D10:  0A 09 72 65 74 20 63 3A 20 6A 70 20 64 73 63 65    ..ret c: jp dsce
011D20:  72 72 0D 0A 0D 0A 09 3B 2A 2A 2A 20 52 53 58 09    rr.....;*** RSX.
011D30:  7C 53 45 43 54 4F 52 2E 52 45 41 44 2C 73 6F 75    |SECTOR.READ,sou
011D40:  72 63 65 2C 64 72 69 76 65 2C 74 72 61 63 6B 2C    rce,drive,track,
011D50:  73 65 63 74 6F 72 0D 0A 0D 0A 2E 73 65 63 72 5F    sector.....secr_
011D60:  69 09 63 70 20 34 3A 20 6A 70 20 6E 7A 2C 70 61    i.cp 4: jp nz,pa
011D70:  72 65 72 72 0D 0A 09 6C 64 20 6C 2C 28 69 78 2B    rerr...ld l,(ix+
011D80:  36 29 3A 20 6C 64 20 68 2C 28 69 78 2B 37 29 0D    6): ld h,(ix+7).
011D90:  0A 09 6C 64 20 65 2C 28 69 78 2B 34 29 3A 20 6C    ..ld e,(ix+4): l
011DA0:  64 20 64 2C 28 69 78 2B 32 29 0D 0A 09 6C 64 20    d d,(ix+2)...ld 
011DB0:  63 2C 28 69 78 2B 30 29 3A 20 72 73 74 20 33 2C    c,(ix+0): rst 3,
011DC0:  72 73 63 66 61 72 0D 0A 09 72 65 74 20 63 3A 20    rscfar...ret c: 
011DD0:  6A 70 20 64 73 63 65 72 72 0D 0A 0D 0A 09 3B 2A    jp dscerr.....;*
011DE0:  2A 2A 20 52 53 58 09 7C 48 4C 2E 57 52 49 54 45    ** RSX.|HL.WRITE
011DF0:  2C 73 6F 75 72 63 65 2C 6C 65 6E 67 74 68 2C 73    ,source,length,s
011E00:  54 72 61 63 6B 2D 49 6E 66 6F 0D 0A 00 00 00 00    Track-Info......
011E10:  0F 00 01 00 02 09 4E E5 0F 00 C6 02 00 00 00 02    ......N.........
011E20:  0F 00 C2 02 00 00 00 02 0F 00 C7 02 00 00 00 02    ................
011E30:  0F 00 C3 02 00 00 00 02 0F 00 C8 02 00 00 00 02    ................
011E40:  0F 00 C4 02 00 00 00 02 0F 00 C9 02 00 00 00 02    ................
011E50:  0F 00 C5 02 00 00 00 02 0F 00 C1 02 00 00 00 02    ................
011E60:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
011E70:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
011E80:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
011E90:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
011EA0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
011EB0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
011EC0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
011ED0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
011EE0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
011EF0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
011F00:  63 3A 20 70 6F 70 20 68 6C 0D 0A 09 6C 64 20 61    c: pop hl...ld a
011F10:  2C 22 20 22 3A 20 63 61 6C 6C 20 26 42 42 35 41    ," ": call &BB5A
011F20:  3A 20 63 61 6C 6C 20 26 42 42 35 41 0D 0A 09 70    : call &BB5A...p
011F30:  75 73 68 20 62 63 0D 0A 09 20 6C 64 20 62 2C 31    ush bc... ld b,1
011F40:  36 0D 0A 2E 64 64 61 6C 09 20 6C 64 20 61 2C 28    6...ddal. ld a,(
011F50:  68 6C 29 3A 20 63 61 6C 6C 20 70 63 73 70 65 63    hl): call pcspec
011F60:  0D 0A 09 20 69 6E 63 20 68 6C 3A 20 64 6A 6E 7A    ... inc hl: djnz
011F70:  20 64 64 61 6C 0D 0A 09 70 6F 70 20 62 63 0D 0A     ddal...pop bc..
011F80:  09 63 61 6C 6C 20 63 72 6C 66 0D 0A 09 64 65 63    .call crlf...dec
011F90:  20 62 63 3A 20 69 6E 63 20 65 0D 0A 09 62 69 74     bc: inc e...bit
011FA0:  20 34 2C 65 3A 20 6A 72 20 7A 2C 6E 6F 70 61 75     4,e: jr z,nopau
011FB0:  73 0D 0A 09 20 6C 64 20 65 2C 30 0D 0A 09 20 63    s... ld e,0... c
011FC0:  61 6C 6C 20 26 42 42 38 31 3A 20 63 61 6C 6C 20    all &BB81: call 
011FD0:  26 42 42 30 36 3A 20 63 61 6C 6C 20 26 42 42 38    &BB06: call &BB8
011FE0:  34 0D 0A 09 20 63 70 20 26 46 43 3A 20 72 65 74    4... cp &FC: ret
011FF0:  20 7A 0D 0A 2E 6E 6F 70 61 75 73 09 6C 64 20 61     z...nopaus.ld a
012000:  2C 62 3A 20 6F 72 20 63 3A 20 6A 72 20 6E 7A 2C    ,b: or c: jr nz,
012010:  64 75 6D 70 5F 6C 0D 0A 09 72 65 74 0D 0A 0D 0A    dump_l...ret....
012020:  09 3B 2A 2A 2A 20 52 53 58 09 7C 46 49 4E 44 2C    .;*** RSX.|FIND,
012030:  73 74 61 72 74 2C 65 6E 64 2C 62 79 74 65 0D 0A    start,end,byte..
012040:  0D 0A 2E 66 69 6E 64 5F 69 09 63 70 20 33 3A 20    ...find_i.cp 3: 
012050:  6A 70 20 6E 7A 2C 70 61 72 65 72 72 0D 0A 09 6C    jp nz,parerr...l
012060:  64 20 6C 2C 28 69 78 2B 34 29 3A 20 6C 64 20 68    d l,(ix+4): ld h
012070:  2C 28 69 78 2B 35 29 0D 0A 09 6C 64 20 64 2C 28    ,(ix+5)...ld d,(
012080:  69 78 2B 30 29 0D 0A 0D 0A 2E 66 6E 64 5F 6C 70    ix+0).....fnd_lp
012090:  09 6C 64 20 61 2C 28 68 6C 29 3A 20 63 70 20 64    .ld a,(hl): cp d
0120A0:  3A 20 6A 70 20 6E 7A 2C 66 6E 64 6E 6F 74 0D 0A    : jp nz,fndnot..
0120B0:  09 63 61 6C 6C 20 68 65 78 68 6C 3A 20 6C 64 20    .call hexhl: ld 
0120C0:  61 2C 22 20 22 3A 20 63 61 6C 6C 20 26 42 42 35    a," ": call &BB5
0120D0:  41 0D 0A 2E 66 6E 64 6E 6F 74 09 69 6E 63 20 68    A...fndnot.inc h
0120E0:  6C 0D 0A 09 6C 64 20 61 2C 6C 3A 20 63 70 20 28    l...ld a,l: cp (
0120F0:  69 78 2B 32 29 3A 20 6A 70 20 6E 7A 2C 66 6E 64    ix+2): jp nz,fnd
012100:  6B 77 5F 64 09 6C 64 20 63 2C 28 69 78 2B 30 29    kw_d.ld c,(ix+0)
012110:  3A 20 6C 64 20 62 2C 28 69 78 2B 31 29 0D 0A 09    : ld b,(ix+1)...
012120:  6C 64 20 6C 2C 28 69 78 2B 32 29 3A 20 6C 64 20    ld l,(ix+2): ld 
012130:  68 2C 28 69 78 2B 33 29 3A 20 64 65 63 20 68 6C    h,(ix+3): dec hl
012140:  3A 20 61 64 64 20 68 6C 2C 62 63 3A 20 65 78 20    : add hl,bc: ex 
012150:  64 65 2C 68 6C 0D 0A 09 6C 64 20 6C 2C 28 69 78    de,hl...ld l,(ix
012160:  2B 34 29 3A 20 6C 64 20 68 2C 28 69 78 2B 35 29    +4): ld h,(ix+5)
012170:  3A 20 64 65 63 20 68 6C 3A 20 61 64 64 20 68 6C    : dec hl: add hl
012180:  2C 62 63 3A 20 65 78 20 64 65 2C 68 6C 0D 0A 0D    ,bc: ex de,hl...
012190:  0A 2E 62 6E 6B 77 5F 62 09 6C 64 20 61 2C 28 64    ..bnkw_b.ld a,(d
0121A0:  65 29 20 3A 20 64 65 63 20 64 65 0D 0A 09 63 61    e) : dec de...ca
0121B0:  6C 6C 20 6C 64 68 6C 61 3A 20 64 65 63 20 68 6C    ll ldhla: dec hl
0121C0:  0D 0A 09 64 65 63 20 62 63 3A 20 6C 64 20 61 2C    ...dec bc: ld a,
0121D0:  62 3A 20 6F 72 20 63 3A 20 6A 70 20 6E 7A 2C 62    b: or c: jp nz,b
0121E0:  6E 6B 77 5F 62 0D 0A 09 72 65 74 0D 0A 0D 0A 09    nkw_b...ret.....
0121F0:  3B 2A 2A 2A 20 52 53 58 09 7C 42 41 4E 4B 2E 52    ;*** RSX.|BANK.R
012200:  45 41 44 2C 73 6F 75 72 63 65 2C 64 65 73 74 69    EAD,source,desti
012210:  6E 61 74 69 6F 6E 2C 6C 65 6E 67 74 68 0D 0A 0D    nation,length...
012220:  0A 2E 62 6E 6B 72 5F 69 09 63 70 20 33 3A 20 6A    ..bnkr_i.cp 3: j
012230:  70 20 6E 7A 2C 70 61 72 65 72 72 0D 0A 09 6C 64    p nz,parerr...ld
012240:  20 6C 2C 28 69 78 2B 34 29 3A 20 6C 64 20 68 2C     l,(ix+4): ld h,
012250:  28 69 78 2B 35 29 0D 0A 09 6C 64 20 65 2C 28 69    (ix+5)...ld e,(i
012260:  78 2B 32 29 3A 20 6C 64 20 64 2C 28 69 78 2B 33    x+2): ld d,(ix+3
012270:  29 0D 0A 09 6F 72 20 61 3A 20 73 62 63 20 68 6C    )...or a: sbc hl
012280:  2C 64 65 3A 20 6A 70 20 63 2C 62 6E 6B 72 5F 64    ,de: jp c,bnkr_d
012290:  0D 0A 0D 0A 09 6C 64 20 6C 2C 28 69 78 2B 34 29    .....ld l,(ix+4)
0122A0:  3A 20 6C 64 20 68 2C 28 69 78 2B 35 29 0D 0A 09    : ld h,(ix+5)...
0122B0:  6C 64 20 63 2C 28 69 78 2B 30 29 3A 20 6C 64 20    ld c,(ix+0): ld 
0122C0:  62 2C 28 69 78 2B 31 29 0D 0A 0D 0A 2E 62 6E 6B    b,(ix+1).....bnk
0122D0:  72 5F 61 09 63 61 6C 6C 20 6C 64 61 68 6C 3A 20    r_a.call ldahl: 
0122E0:  69 6E 63 20 68 6C 0D 0A 09 6C 64 20 28 64 65 29    inc hl...ld (de)
0122F0:  2C 61 20 3A 20 69 6E 63 20 64 65 0D 0A 09 64 65    ,a : inc de...de
012300:  5F 6C 70 0D 0A 09 6C 64 20 61 2C 68 3A 20 63 70    _lp...ld a,h: cp
012310:  20 28 69 78 2B 33 29 3A 20 6A 70 20 6E 7A 2C 66     (ix+3): jp nz,f
012320:  6E 64 5F 6C 70 0D 0A 09 63 61 6C 6C 20 63 72 6C    nd_lp...call crl
012330:  66 0D 0A 09 72 65 74 0D 0A 0D 0A 09 3B 2A 2A 2A    f...ret.....;***
012340:  20 52 53 58 09 7C 4D 45 4D 4F 52 59 0D 0A 0D 0A     RSX.|MEMORY....
012350:  2E 6D 65 6D 72 5F 69 09 6C 64 20 61 2C 32 3A 20    .memr_i.ld a,2: 
012360:  63 61 6C 6C 20 26 42 43 30 45 0D 0A 09 6C 64 20    call &BC0E...ld 
012370:  64 65 2C 26 45 30 33 30 0D 0A 09 6C 64 20 68 6C    de,&E030...ld hl
012380:  2C 26 30 30 30 30 0D 0A 0D 0A 2E 72 62 69 74 6F    ,&0000.....rbito
012390:  09 6C 64 20 62 2C 33 32 0D 0A 0D 0A 2E 72 62 69    .ld b,32.....rbi
0123A0:  74 6C 09 78 6F 72 20 61 0D 0A 09 63 70 20 28 68    tl.xor a...cp (h
0123B0:  6C 29 3A 20 69 6E 63 20 6C 3A 20 72 6C 20 63 0D    l): inc l: rl c.
0123C0:  0A 09 63 70 20 28 68 6C 29 3A 20 69 6E 63 20 6C    ..cp (hl): inc l
0123D0:  3A 20 72 6C 20 63 0D 0A 09 63 70 20 28 68 6C 29    : rl c...cp (hl)
0123E0:  3A 20 69 6E 63 20 6C 3A 20 72 6C 20 63 0D 0A 09    : inc l: rl c...
0123F0:  63 70 20 28 68 6C 29 3A 20 69 6E 63 20 6C 3A 20    cp (hl): inc l: 
012400:  72 6C 20 63 0D 0A 09 63 70 20 28 68 6C 29 3A 20    rl c...cp (hl): 
012410:  69 6E 63 20 6C 3A 20 72 6C 20 63 0D 0A 09 63 70    inc l: rl c...cp
012420:  20 28 68 6C 29 3A 20 69 6E 63 20 6C 3A 20 72 6C     (hl): inc l: rl
012430:  20 63 0D 0A 09 63 70 20 28 68 6C 29 3A 20 69 6E     c...cp (hl): in
012440:  63 20 6C 3A 20 72 6C 20 63 0D 0A 09 63 70 20 28    c l: rl c...cp (
012450:  68 6C 29 3A 20 69 6E 63 20 6C 3A 20 72 6C 20 63    hl): inc l: rl c
012460:  0D 0A 09 6C 64 20 61 2C 63 3A 20 6C 64 20 28 64    ...ld a,c: ld (d
012470:  65 29 2C 61 3A 20 69 6E 63 20 64 65 0D 0A 09 64    e),a: inc de...d
012480:  6A 6E 7A 20 72 62 69 74 6C 0D 0A 09 69 6E 63 20    jnz rbitl...inc 
012490:  68 0D 0A 0D 0A 09 65 78 20 64 65 2C 68 6C 0D 0A    h.....ex de,hl..
0124A0:  09 20 6C 64 20 62 63 2C 26 37 45 30 0D 0A 09 20    . ld bc,&7E0... 
0124B0:  61 64 64 20 68 6C 2C 62 63 3A 20 6A 72 20 6E 63    add hl,bc: jr nc
0124C0:  2C 72 62 69 74 6F 6B 0D 0A 09 20 6C 64 20 62 63    ,rbitok... ld bc
0124D0:  2C 26 43 30 35 30 3A 20 61 64 64 20 68 6C 2C 62    ,&C050: add hl,b
0124E0:  63 0D 0A 2E 72 62 69 74 6F 6B 09 65 78 20 64 65    c...rbitok.ex de
0124F0:  2C 68 6C 0D 0A 0D 0A 09 6C 64 20 61 2C 68 3A 20    ,hl.....ld a,h: 
012500:  63 20 62 63 3A 20 6C 64 20 61 2C 62 3A 20 6F 72    c bc: ld a,b: or
012510:  20 63 3A 20 6A 70 20 6E 7A 2C 62 6E 6B 72 5F 61     c: jp nz,bnkr_a
012520:  0D 0A 09 72 65 74 0D 0A 0D 0A 2E 62 6E 6B 72 5F    ...ret.....bnkr_
012530:  64 09 6C 64 20 63 2C 28 69 78 2B 30 29 3A 20 6C    d.ld c,(ix+0): l
012540:  64 20 62 2C 28 69 78 2B 31 29 0D 0A 09 6C 64 20    d b,(ix+1)...ld 
012550:  6C 2C 28 69 78 2B 32 29 3A 20 6C 64 20 68 2C 28    l,(ix+2): ld h,(
012560:  69 78 2B 33 29 3A 20 64 65 63 20 68 6C 3A 20 61    ix+3): dec hl: a
012570:  64 64 20 68 6C 2C 62 63 3A 20 65 78 20 64 65 2C    dd hl,bc: ex de,
012580:  68 6C 0D 0A 09 6C 64 20 6C 2C 28 69 78 2B 34 29    hl...ld l,(ix+4)
012590:  3A 20 6C 64 20 68 2C 28 69 78 2B 35 29 3A 20 64    : ld h,(ix+5): d
0125A0:  65 63 20 68 6C 3A 20 61 64 64 20 68 6C 2C 62 63    ec hl: add hl,bc
0125B0:  0D 0A 0D 0A 2E 62 6E 6B 72 5F 62 09 63 61 6C 6C    .....bnkr_b.call
0125C0:  20 6C 64 61 68 6C 3A 20 64 65 63 20 68 6C 0D 0A     ldahl: dec hl..
0125D0:  09 6C 64 20 28 64 65 29 2C 61 20 3A 20 64 65 63    .ld (de),a : dec
0125E0:  20 64 65 0D 0A 09 64 65 63 20 62 63 3A 20 6C 64     de...dec bc: ld
0125F0:  20 61 2C 62 3A 20 6F 72 20 63 3A 20 6A 70 20 6E     a,b: or c: jp n
012600:  7A 2C 62 6E 6B 72 5F 62 0D 0A 09 72 65 74 0D 0A    z,bnkr_b...ret..
012610:  0D 0A 09 3B 2A 2A 2A 20 52 53 58 09 7C 43 41 4C    ...;*** RSX.|CAL
012620:  4C 2C 61 64 64 72 65 73 73 0D 0A 0D 0A 2E 63 61    L,address.....ca
012630:  6C 6C 5F 69 09 63 70 20 31 3A 20 6A 70 20 6E 7A    ll_i.cp 1: jp nz
012640:  2C 70 61 72 65 72 72 0D 0A 09 6C 64 20 6C 2C 28    ,parerr...ld l,(
012650:  69 78 29 3A 20 6C 64 20 68 2C 28 69 78 2B 31 29    ix): ld h,(ix+1)
012660:  3A 20 70 75 73 68 20 68 6C 0D 0A 2E 61 66 70 6C    : push hl...afpl
012670:  6F 70 09 6C 64 20 68 6C 2C 30 3A 20 70 75 73 68    op.ld hl,0: push
012680:  20 68 6C 3A 20 70 6F 70 20 61 66 0D 0A 2E 62 63     hl: pop af...bc
012690:  70 6C 6F 70 09 6C 64 20 62 63 2C 30 0D 0A 2E 64    plop.ld bc,0...d
0126A0:  65 70 6C 6F 70 09 6C 64 20 64 65 2C 30 0D 0A 2E    eplop.ld de,0...
0126B0:  68 6C 70 6C 6F 70 09 6C 64 20 68 6C 2C 30 0D 0A    hlplop.ld hl,0..
0126C0:  2E 69 78 70 6C 6F 70 09 6C 64 20 69 78 2C 30 0D    .ixplop.ld ix,0.
0126D0:  0A 2E 69 79 70 6C 6F 70 09 6C 64 20 69 79 2C 30    ..iyplop.ld iy,0
0126E0:  0D 0A 09 72 65 74 0D 0A 0D 0A 09 3B 2A 2A 2A 20    ...ret.....;*** 
0126F0:  52 53 58 09 7C 41 46 2C 20 7C 42 43 2C 20 7C 44    RSX.|AF, |BC, |D
012700:  63 70 20 26 43 30 3A 20 6A 70 20 6E 7A 2C 72 62    cp &C0: jp nz,rb
012710:  69 74 6F 0D 0A 0D 0A 09 6C 64 20 61 2C 32 35 34    ito.....ld a,254
012720:  0D 0A 09 6C 64 20 68 6C 2C 26 45 30 32 46 3A 20    ...ld hl,&E02F: 
012730:  6C 64 20 28 68 6C 29 2C 61 3A 20 6C 64 20 68 6C    ld (hl),a: ld hl
012740:  2C 26 45 30 43 46 3A 20 6C 64 20 28 68 6C 29 2C    ,&E0CF: ld (hl),
012750:  61 0D 0A 09 6C 64 20 68 6C 2C 26 45 31 36 46 3A    a...ld hl,&E16F:
012760:  20 6C 64 20 28 68 6C 29 2C 61 3A 20 6C 64 20 68     ld (hl),a: ld h
012770:  6C 2C 26 45 32 30 46 3A 20 6C 64 20 28 68 6C 29    l,&E20F: ld (hl)
012780:  2C 61 0D 0A 09 6C 64 20 68 6C 2C 26 45 32 41 46    ,a...ld hl,&E2AF
012790:  3A 20 6C 64 20 28 68 6C 29 2C 61 3A 20 6C 64 20    : ld (hl),a: ld 
0127A0:  68 6C 2C 26 45 33 34 46 3A 20 6C 64 20 28 68 6C    hl,&E34F: ld (hl
0127B0:  29 2C 61 0D 0A 09 6C 64 20 68 6C 2C 26 45 33 45    ),a...ld hl,&E3E
0127C0:  46 3A 20 6C 64 20 28 68 6C 29 2C 61 3A 20 6C 64    F: ld (hl),a: ld
0127D0:  20 68 6C 2C 26 45 34 38 46 3A 20 6C 64 20 28 68     hl,&E48F: ld (h
0127E0:  6C 29 2C 61 0D 0A 09 6C 64 20 68 6C 2C 26 45 35    l),a...ld hl,&E5
0127F0:  32 46 3A 20 6C 64 20 28 68 6C 29 2C 61 3A 20 6C    2F: ld (hl),a: l
012800:  64 20 68 6C 2C 26 45 35 43 46 3A 20 6C 64 20 28    d hl,&E5CF: ld (
012810:  68 6C 29 2C 61 0D 0A 09 6C 64 20 68 6C 2C 26 45    hl),a...ld hl,&E
012820:  36 36 46 3A 20 6C 64 20 28 68 6C 29 2C 61 3A 20    66F: ld (hl),a: 
012830:  6C 64 20 68 6C 2C 26 45 37 30 46 3A 20 6C 64 20    ld hl,&E70F: ld 
012840:  28 68 6C 29 2C 61 0D 0A 09 6C 64 20 68 6C 2C 26    (hl),a...ld hl,&
012850:  45 37 41 46 3A 20 6C 64 20 28 68 6C 29 2C 61 0D    E7AF: ld (hl),a.
012860:  0A 0D 0A 09 6C 64 20 68 6C 2C 26 32 42 30 31 3A    ....ld hl,&2B01:
012870:  20 63 61 6C 6C 20 26 42 42 37 35 3A 20 6C 64 20     call &BB75: ld 
012880:  61 2C 22 30 22 3A 20 63 61 6C 6C 20 6E 70 72 69    a,"0": call npri
012890:  6E 74 0D 0A 09 6C 64 20 68 6C 2C 26 32 42 30 35    nt...ld hl,&2B05
0128A0:  3A 20 63 61 6C 6C 20 26 42 42 37 35 3A 20 6C 64    : call &BB75: ld
0128B0:  20 61 2C 22 32 22 3A 20 63 61 6C 6C 20 6E 70 72     a,"2": call npr
0128C0:  69 6E 74 0D 0A 09 6C 64 20 68 6C 2C 26 32 42 30    int...ld hl,&2B0
0128D0:  39 3A 20 63 61 6C 6C 20 26 42 42 37 35 3A 20 6C    9: call &BB75: l
0128E0:  64 20 61 2C 22 34 22 3A 20 63 61 6C 6C 20 6E 70    d a,"4": call np
0128F0:  72 69 6E 74 0D 0A 09 6C 64 20 68 6C 2C 26 32 42    rint...ld hl,&2B
012900:  45 2C 20 7C 48 4C 2C 20 7C 49 58 2C 20 7C 49 59    E, |HL, |IX, |IY
012910:  0D 0A 0D 0A 2E 73 74 61 66 5F 69 09 63 70 20 31    .....staf_i.cp 1
012920:  3A 20 6A 70 20 6E 7A 2C 70 61 72 65 72 72 3A 20    : jp nz,parerr: 
012930:  6C 64 20 6C 2C 28 69 78 29 3A 20 6C 64 20 68 2C    ld l,(ix): ld h,
012940:  28 69 78 2B 31 29 3A 20 6C 64 20 28 61 66 70 6C    (ix+1): ld (afpl
012950:  6F 70 2B 31 29 2C 68 6C 3A 20 72 65 74 0D 0A 2E    op+1),hl: ret...
012960:  73 74 62 63 5F 69 09 63 70 20 31 3A 20 6A 70 20    stbc_i.cp 1: jp 
012970:  6E 7A 2C 70 61 72 65 72 72 3A 20 6C 64 20 6C 2C    nz,parerr: ld l,
012980:  28 69 78 29 3A 20 6C 64 20 68 2C 28 69 78 2B 31    (ix): ld h,(ix+1
012990:  29 3A 20 6C 64 20 28 62 63 70 6C 6F 70 2B 31 29    ): ld (bcplop+1)
0129A0:  2C 68 6C 3A 20 72 65 74 0D 0A 2E 73 74 64 65 5F    ,hl: ret...stde_
0129B0:  69 09 63 70 20 31 3A 20 6A 70 20 6E 7A 2C 70 61    i.cp 1: jp nz,pa
0129C0:  72 65 72 72 3A 20 6C 64 20 6C 2C 28 69 78 29 3A    rerr: ld l,(ix):
0129D0:  20 6C 64 20 68 2C 28 69 78 2B 31 29 3A 20 6C 64     ld h,(ix+1): ld
0129E0:  20 28 64 65 70 6C 6F 70 2B 31 29 2C 68 6C 3A 20     (deplop+1),hl: 
0129F0:  72 65 74 0D 0A 2E 73 74 68 6C 5F 69 09 63 70 20    ret...sthl_i.cp 
012A00:  31 3A 20 6A 70 20 6E 7A 2C 70 61 72 65 72 72 3A    1: jp nz,parerr:
012A10:  20 6C 64 20 6C 2C 28 69 78 29 3A 20 6C 64 20 68     ld l,(ix): ld h
012A20:  2C 28 69 78 2B 31 29 3A 20 6C 64 20 28 68 6C 70    ,(ix+1): ld (hlp
012A30:  6C 6F 70 2B 31 29 2C 68 6C 3A 20 72 65 74 0D 0A    lop+1),hl: ret..
012A40:  2E 73 74 69 78 5F 69 09 63 70 20 31 3A 20 6A 70    .stix_i.cp 1: jp
012A50:  20 6E 7A 2C 70 61 72 65 72 72 3A 20 6C 64 20 6C     nz,parerr: ld l
012A60:  2C 28 69 78 29 3A 20 6C 64 20 68 2C 28 69 78 2B    ,(ix): ld h,(ix+
012A70:  31 29 3A 20 6C 64 20 28 69 78 70 6C 6F 70 2B 32    1): ld (ixplop+2
012A80:  29 2C 68 6C 3A 20 72 65 74 0D 0A 2E 73 74 69 79    ),hl: ret...stiy
012A90:  5F 69 09 63 70 20 31 3A 20 6A 70 20 6E 7A 2C 70    _i.cp 1: jp nz,p
012AA0:  61 72 65 72 72 3A 20 6C 64 20 6C 2C 28 69 78 29    arerr: ld l,(ix)
012AB0:  3A 20 6C 64 20 68 2C 28 69 78 2B 31 29 3A 20 6C    : ld h,(ix+1): l
012AC0:  64 20 28 69 79 70 6C 6F 70 2B 32 29 2C 68 6C 3A    d (iyplop+2),hl:
012AD0:  20 72 65 74 0D 0A 0D 0A 09 3B 2A 2A 2A 20 52 53     ret.....;*** RS
012AE0:  58 09 7C 44 55 4D 50 2C 73 74 61 72 74 2C 65 6E    X.|DUMP,start,en
012AF0:  64 0D 0A 0D 0A 2E 64 75 6D 70 5F 69 09 63 70 20    d.....dump_i.cp 
012B00:  30 44 3A 20 63 61 6C 6C 20 26 42 42 37 35 3A 20    0D: call &BB75: 
012B10:  6C 64 20 61 2C 22 36 22 3A 20 63 61 6C 6C 20 6E    ld a,"6": call n
012B20:  70 72 69 6E 74 0D 0A 09 6C 64 20 68 6C 2C 26 32    print...ld hl,&2
012B30:  42 31 31 3A 20 63 61 6C 6C 20 26 42 42 37 35 3A    B11: call &BB75:
012B40:  20 6C 64 20 61 2C 22 38 22 3A 20 63 61 6C 6C 20     ld a,"8": call 
012B50:  6E 70 72 69 6E 74 0D 0A 09 6C 64 20 68 6C 2C 26    nprint...ld hl,&
012B60:  32 42 31 35 3A 20 63 61 6C 6C 20 26 42 42 37 35    2B15: call &BB75
012B70:  3A 20 6C 64 20 61 2C 22 41 22 3A 20 63 61 6C 6C    : ld a,"A": call
012B80:  20 6E 70 72 69 6E 74 0D 0A 09 6C 64 20 68 6C 2C     nprint...ld hl,
012B90:  26 32 42 31 39 3A 20 63 61 6C 6C 20 26 42 42 37    &2B19: call &BB7
012BA0:  35 3A 20 6C 64 20 61 2C 22 43 22 3A 20 63 61 6C    5: ld a,"C": cal
012BB0:  6C 20 6E 70 72 69 6E 74 0D 0A 09 6C 64 20 68 6C    l nprint...ld hl
012BC0:  2C 26 30 31 30 31 3A 20 63 61 6C 6C 20 26 42 42    ,&0101: call &BB
012BD0:  37 35 0D 0A 09 72 65 74 0D 0A 0D 0A 2E 6E 70 72    75...ret.....npr
012BE0:  69 6E 74 09 63 61 6C 6C 20 26 42 42 35 41 3A 20    int.call &BB5A: 
012BF0:  6C 64 20 61 2C 22 30 22 0D 0A 09 63 61 6C 6C 20    ld a,"0"...call 
012C00:  26 42 42 35 41 3A 20 63 61 6C 6C 20 26 42 42 35    &BB5A: call &BB5
012C10:  41 3A 20 63 61 6C 6C 20 26 42 42 35 41 3A 20 72    A: call &BB5A: r
012C20:  65 74 0D 0A 0D 0A 09 3B 2A 2A 2A 20 52 53 58 09    et.....;*** RSX.
012C30:  7C 54 59 50 45 2C 40 61 24 0D 0A 0D 0A 2E 74 79    |TYPE,@a$.....ty
012C40:  70 65 5F 69 09 63 70 20 31 3A 20 6A 70 20 6E 7A    pe_i.cp 1: jp nz
012C50:  2C 70 61 72 65 72 72 0D 0A 09 6C 64 20 61 2C 26    ,parerr...ld a,&
012C60:  32 31 3A 20 6C 64 20 28 70 72 6E 63 68 72 2B 31    21: ld (prnchr+1
012C70:  29 2C 61 09 09 3B 4E 6F 20 70 72 69 6E 74 69 6E    ),a..;No printin
012C80:  67 20 70 6C 65 61 73 65 0D 0A 09 6A 72 20 74 79    g please...jr ty
012C90:  70 65 5F 63 0D 0A 0D 0A 09 3B 2A 2A 2A 20 52 53    pe_c.....;*** RS
012CA0:  58 09 7C 50 54 59 50 45 2C 40 61 24 0D 0A 0D 0A    X.|PTYPE,@a$....
012CB0:  2E 70 74 79 70 5F 69 09 63 70 20 31 3A 20 6A 70    .ptyp_i.cp 1: jp
012CC0:  20 6E 7A 2C 70 61 72 65 72 72 0D 0A 09 6C 64 20     nz,parerr...ld 
012CD0:  61 2C 26 43 44 3A 20 6C 64 20 28 70 72 6E 63 68    a,&CD: ld (prnch
012CE0:  72 2B 31 29 2C 61 09 09 3B 50 72 69 6E 74 69 6E    r+1),a..;Printin
012CF0:  67 20 6F 6E 0D 0A 09 6A 72 20 74 79 70 65 5F 63    g on...jr type_c
012D00:  32 3A 20 6A 72 20 7A 20 2C 64 75 6D 70 5F 74 0D    2: jr z ,dump_t.
012D10:  0A 09 63 70 20 31 3A 20 6A 70 20 6E 7A 2C 70 61    ..cp 1: jp nz,pa
012D20:  72 65 72 72 0D 0A 09 6C 64 20 61 2C 28 69 78 2B    rerr...ld a,(ix+
012D30:  30 29 3A 20 61 6E 64 20 26 46 30 3A 20 6C 64 20    0): and &F0: ld 
012D40:  6C 2C 61 3A 20 6C 64 20 68 2C 28 69 78 2B 31 29    l,a: ld h,(ix+1)
012D50:  0D 0A 09 6C 64 20 62 63 2C 38 3A 20 6A 72 20 64    ...ld bc,8: jr d
012D60:  75 6D 70 5F 64 0D 0A 2E 64 75 6D 70 5F 74 09 6C    ump_d...dump_t.l
012D70:  64 20 61 2C 28 69 78 2B 32 29 3A 20 61 6E 64 20    d a,(ix+2): and 
012D80:  26 46 30 3A 20 6C 64 20 65 2C 61 3A 20 6C 64 20    &F0: ld e,a: ld 
012D90:  64 2C 28 69 78 2B 33 29 0D 0A 09 6C 64 20 6C 2C    d,(ix+3)...ld l,
012DA0:  28 69 78 2B 30 29 3A 20 6C 64 20 68 2C 28 69 78    (ix+0): ld h,(ix
012DB0:  2B 31 29 3A 20 6F 72 20 61 3A 20 73 62 63 20 68    +1): or a: sbc h
012DC0:  6C 2C 64 65 0D 0A 09 73 72 6C 20 68 3A 20 72 72    l,de...srl h: rr
012DD0:  20 6C 3A 20 73 72 6C 20 68 3A 20 72 72 20 6C 0D     l: srl h: rr l.
012DE0:  0A 09 73 72 6C 20 68 3A 20 72 72 20 6C 3A 20 73    ..srl h: rr l: s
012DF0:  72 6C 20 68 3A 20 72 72 20 6C 0D 0A 09 69 6E 63    rl h: rr l...inc
012E00:  20 68 6C 3A 20 70 75 73 68 20 68 6C 3A 20 70 6F     hl: push hl: po
012E10:  70 20 62 63 3A 20 65 78 20 64 65 2C 68 6C 0D 0A    p bc: ex de,hl..
012E20:  0D 0A 2E 64 75 6D 70 5F 64 09 6C 64 20 65 2C 30    ...dump_d.ld e,0
012E30:  0D 0A 2E 64 75 6D 70 5F 6C 09 6C 64 20 61 2C 68    ...dump_l.ld a,h
012E40:  3A 20 63 61 6C 6C 20 68 65 78 6E 63 0D 0A 09 6C    : call hexnc...l
012E50:  64 20 61 2C 6C 3A 20 63 61 6C 6C 20 68 65 78 6E    d a,l: call hexn
012E60:  63 0D 0A 09 6C 64 20 61 2C 22 20 22 3A 20 63 61    c...ld a," ": ca
012E70:  6C 6C 20 26 42 42 35 41 3A 20 63 61 6C 6C 20 26    ll &BB5A: call &
012E80:  42 42 35 41 3A 20 63 61 6C 6C 20 26 42 42 35 41    BB5A: call &BB5A
012E90:  0D 0A 09 70 75 73 68 20 68 6C 3A 20 70 75 73 68    ...push hl: push
012EA0:  20 62 63 0D 0A 09 20 6C 64 20 62 2C 31 36 0D 0A     bc... ld b,16..
012EB0:  2E 64 64 68 6C 09 20 6C 64 20 61 2C 28 68 6C 29    .ddhl. ld a,(hl)
012EC0:  3A 20 63 61 6C 6C 20 68 65 78 6E 63 3A 20 69 6E    : call hexnc: in
012ED0:  63 20 68 6C 0D 0A 09 20 6C 64 20 61 2C 22 20 22    c hl... ld a," "
012EE0:  20 3A 20 63 61 6C 6C 20 26 42 42 35 41 3A 20 64     : call &BB5A: d
012EF0:  6A 6E 7A 20 64 64 68 6C 0D 0A 09 70 6F 70 20 62    jnz ddhl...pop b
012F00:  64 65 0D 0A 09 6C 64 20 63 2C 28 69 78 2B 32 29    de...ld c,(ix+2)
012F10:  3A 20 6C 64 20 62 2C 28 69 78 2B 33 29 0D 0A 09    : ld b,(ix+3)...
012F20:  64 65 63 20 62 63 3A 20 6C 64 69 72 0D 0A 09 72    dec bc: ldir...r
012F30:  65 74 0D 0A 0D 0A 09 3B 2A 2A 2A 20 52 53 58 09    et.....;*** RSX.
012F40:  7C 42 41 4E 4B 2C 62 61 6E 6B 0D 0A 0D 0A 2E 62    |BANK,bank.....b
012F50:  61 6E 6B 5F 69 09 63 70 20 31 3A 20 6A 70 20 6E    ank_i.cp 1: jp n
012F60:  7A 2C 70 61 72 65 72 72 0D 0A 09 6C 64 20 61 2C    z,parerr...ld a,
012F70:  28 69 78 29 3A 20 61 6E 64 20 26 46 38 3A 20 6F    (ix): and &F8: o
012F80:  72 20 26 43 30 3A 20 61 64 64 20 34 0D 0A 09 6C    r &C0: add 4...l
012F90:  64 20 28 62 6E 6B 70 31 2B 33 29 2C 61 0D 0A 09    d (bnkp1+3),a...
012FA0:  6C 64 20 28 62 6E 6B 70 32 2B 33 29 2C 61 3A 20    ld (bnkp2+3),a: 
012FB0:  72 65 74 0D 0A 0D 0A 09 3B 2A 2A 2A 20 52 53 58    ret.....;*** RSX
012FC0:  09 7C 42 41 4E 4B 2E 57 52 49 54 45 2C 73 6F 75    .|BANK.WRITE,sou
012FD0:  72 63 65 2C 64 65 73 74 69 6E 61 74 69 6F 6E 2C    rce,destination,
012FE0:  6C 65 6E 67 74 68 0D 0A 0D 0A 2E 62 6E 6B 77 5F    length.....bnkw_
012FF0:  69 09 63 70 20 33 3A 20 6A 70 20 6E 7A 2C 70 61    i.cp 3: jp nz,pa
013000:  72 65 72 72 0D 0A 09 6C 64 20 6C 2C 28 69 78 2B    rerr...ld l,(ix+
013010:  34 29 3A 20 6C 64 20 68 2C 28 69 78 2B 35 29 0D    4): ld h,(ix+5).
013020:  0A 09 6C 64 20 65 2C 28 69 78 2B 32 29 3A 20 6C    ..ld e,(ix+2): l
013030:  64 20 64 2C 28 69 78 2B 33 29 0D 0A 09 6F 72 20    d d,(ix+3)...or 
013040:  61 3A 20 73 62 63 20 68 6C 2C 64 65 3A 20 6A 70    a: sbc hl,de: jp
013050:  20 63 2C 62 6E 6B 77 5F 64 0D 0A 0D 0A 09 6C 64     c,bnkw_d.....ld
013060:  20 6C 2C 28 69 78 2B 34 29 3A 20 6C 64 20 68 2C     l,(ix+4): ld h,
013070:  28 69 78 2B 35 29 0D 0A 09 6C 64 20 63 2C 28 69    (ix+5)...ld c,(i
013080:  78 2B 30 29 3A 20 6C 64 20 62 2C 28 69 78 2B 31    x+0): ld b,(ix+1
013090:  29 3A 20 65 78 20 64 65 2C 68 6C 0D 0A 0D 0A 2E    ): ex de,hl.....
0130A0:  62 6E 6B 77 5F 61 09 6C 64 20 61 2C 28 64 65 29    bnkw_a.ld a,(de)
0130B0:  20 3A 20 69 6E 63 20 64 65 0D 0A 09 63 61 6C 6C     : inc de...call
0130C0:  20 6C 64 68 6C 61 3A 20 69 6E 63 20 68 6C 0D 0A     ldhla: inc hl..
0130D0:  09 64 65 63 20 62 63 3A 20 6C 64 20 61 2C 62 3A    .dec bc: ld a,b:
0130E0:  20 6F 72 20 63 3A 20 6A 70 20 6E 7A 2C 62 6E 6B     or c: jp nz,bnk
0130F0:  77 5F 61 0D 0A 09 72 65 74 0D 0A 0D 0A 2E 62 6E    w_a...ret.....bn
013100:  54 72 61 63 6B 2D 49 6E 66 6F 0D 0A 00 00 00 00    Track-Info......
013110:  10 00 01 00 02 09 4E E5 10 00 C9 02 00 00 00 02    ......N.........
013120:  10 00 C5 02 00 00 00 02 10 00 C1 02 00 00 00 02    ................
013130:  10 00 C6 02 00 00 00 02 10 00 C2 02 00 00 00 02    ................
013140:  10 00 C7 02 00 00 00 02 10 00 C3 02 00 00 00 02    ................
013150:  10 00 C8 02 00 00 00 02 10 00 C4 02 00 00 00 02    ................
013160:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
013170:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
013180:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
013190:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
0131A0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
0131B0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
0131C0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
0131D0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
0131E0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
0131F0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
013200:  2D 46 0D 0A 2E 68 65 78 62 79 65 09 61 64 64 20    -F...hexbye.add 
013210:  34 38 3A 20 63 61 6C 6C 20 26 42 42 35 41 0D 0A    48: call &BB5A..
013220:  09 6C 64 20 61 2C 63 3A 20 64 6A 6E 7A 20 68 65    .ld a,c: djnz he
013230:  78 6D 73 6B 0D 0A 09 72 65 74 0D 0A 0D 0A 09 3B    xmsk...ret.....;
013240:  2A 2A 2A 20 53 55 42 52 09 32 2D 62 79 74 65 20    *** SUBR.2-byte 
013250:  68 65 78 20 70 72 69 6E 74 20 5B 48 4C 5D 0D 0A    hex print [HL]..
013260:  0D 0A 2E 68 65 78 68 6C 09 6C 64 20 61 2C 68 3A    ...hexhl.ld a,h:
013270:  20 63 61 6C 6C 20 68 65 78 70 72 74 0D 0A 09 6C     call hexprt...l
013280:  64 20 61 2C 6C 3A 20 6A 70 20 20 20 68 65 78 70    d a,l: jp   hexp
013290:  72 74 0D 0A 0D 0A 09 3B 2A 2A 2A 20 53 55 42 52    rt.....;*** SUBR
0132A0:  09 50 72 69 6E 74 20 48 4C 20 61 73 20 28 75 70    .Print HL as (up
0132B0:  20 74 6F 29 20 35 2D 64 69 67 69 74 20 64 65 63     to) 5-digit dec
0132C0:  69 6D 61 6C 0D 0A 0D 0A 2E 64 65 63 68 6C 09 6C    imal.....dechl.l
0132D0:  64 20 63 2C 30 0D 0A 09 6C 64 20 64 65 2C 31 30    d c,0...ld de,10
0132E0:  30 30 30 3A 20 63 61 6C 6C 20 70 72 68 6C 72 0D    000: call prhlr.
0132F0:  0A 09 6C 64 20 64 65 2C 31 30 30 30 3A 20 63 61    ..ld de,1000: ca
013300:  6C 6C 20 70 72 68 6C 72 0D 0A 09 6C 64 20 64 65    ll prhlr...ld de
013310:  2C 31 30 30 3A 20 63 61 6C 6C 20 70 72 68 6C 72    ,100: call prhlr
013320:  0D 0A 09 6C 64 20 64 65 2C 31 30 3A 20 63 61 6C    ...ld de,10: cal
013330:  6C 20 70 72 68 6C 72 0D 0A 09 6C 64 20 63 2C 31    l prhlr...ld c,1
013340:  3A 20 6C 64 20 64 65 2C 31 0D 0A 2E 70 72 68 6C    : ld de,1...prhl
013350:  72 09 78 6F 72 20 61 0D 0A 2E 70 72 68 6C 6C 70    r.xor a...prhllp
013360:  09 73 63 66 3A 20 63 63 66 3A 20 73 62 63 20 68    .scf: ccf: sbc h
013370:  6C 2C 64 65 3A 20 6A 72 20 63 2C 70 72 68 6C 6F    l,de: jr c,prhlo
013380:  0D 0A 09 69 6E 63 20 61 3A 20 6A 72 20 70 72 68    ...inc a: jr prh
013390:  6C 6C 70 0D 0A 2E 70 72 68 6C 6F 09 61 64 64 20    llp...prhlo.add 
0133A0:  68 6C 2C 64 65 3A 20 6F 72 20 61 3A 20 6A 72 20    hl,de: or a: jr 
0133B0:  6E 7A 2C 70 72 68 6C 79 3A 20 63 70 20 63 3A 20    nz,prhly: cp c: 
0133C0:  72 65 74 20 7A 0D 0A 2E 70 72 68 6C 79 09 6C 64    ret z...prhly.ld
0133D0:  20 63 2C 31 3A 20 61 64 64 20 26 33 30 3A 20 63     c,1: add &30: c
0133E0:  61 6C 6C 20 26 42 42 35 41 3A 20 72 65 74 0D 0A    all &BB5A: ret..
0133F0:  0D 0A 09 3B 2A 2A 2A 20 53 55 42 52 09 50 72 69    ...;*** SUBR.Pri
013400:  66 6F 72 20 69 6E 70 75 74 0D 0A 09 20 70 6F 70    for input... pop
013410:  20 62 63 0D 0A 09 20 70 75 73 68 20 68 6C 3A 20     bc... push hl: 
013420:  70 6F 70 20 69 78 0D 0A 09 70 6F 70 20 68 6C 0D    pop ix...pop hl.
013430:  0A 09 6A 70 20 6E 63 2C 65 72 72 6F 72 0D 0A 0D    ..jp nc,error...
013440:  0A 09 63 70 20 26 31 36 3A 20 6A 72 20 6E 7A 2C    ..cp &16: jr nz,
013450:  6C 6E 74 61 73 63 0D 0A 09 6C 64 20 28 69 78 2B    lntasc...ld (ix+
013460:  36 35 29 2C 32 35 35 3A 20 6C 64 20 28 69 78 2B    65),255: ld (ix+
013470:  36 36 29 2C 30 09 3B 6D 6F 64 69 66 79 20 69 66    66),0.;modify if
013480:  20 41 53 43 49 49 20 66 69 6C 65 0D 0A 0D 0A 2E     ASCII file.....
013490:  6C 6E 74 61 73 63 09 63 61 6C 6C 20 26 42 43 38    lntasc.call &BC8
0134A0:  33 0D 0A 09 6A 70 20 26 42 43 37 41 0D 0A 0D 0A    3...jp &BC7A....
0134B0:  09 3B 2A 2A 2A 20 52 53 58 09 7C 49 4E 46 4F 2C    .;*** RSX.|INFO,
0134C0:  40 61 24 0D 0A 0D 0A 2E 69 6E 66 6F 5F 69 09 63    @a$.....info_i.c
0134D0:  70 20 31 3A 20 6A 70 20 6E 7A 2C 70 61 72 65 72    p 1: jp nz,parer
0134E0:  72 0D 0A 0D 0A 09 6C 64 20 6C 2C 28 69 78 2B 30    r.....ld l,(ix+0
0134F0:  29 3A 20 6C 64 20 68 2C 28 69 78 2B 31 29 0D 0A    ): ld h,(ix+1)..
013500:  09 6C 64 20 62 2C 28 68 6C 29 3A 20 69 6E 63 20    .ld b,(hl): inc 
013510:  68 6C 0D 0A 09 6C 64 20 65 2C 28 68 6C 29 3A 20    hl...ld e,(hl): 
013520:  69 6E 63 20 68 6C 0D 0A 09 6C 64 20 64 2C 28 68    inc hl...ld d,(h
013530:  6C 29 3A 20 65 78 20 64 65 2C 68 6C 0D 0A 09 6C    l): ex de,hl...l
013540:  64 20 64 65 2C 62 75 66 66 65 72 09 09 09 3B 32    d de,buffer...;2
013550:  6B 20 62 75 66 66 65 72 0D 0A 2E 72 68 65 61 64    k buffer...rhead
013560:  09 63 61 6C 6C 20 26 42 43 37 37 09 09 09 3B 6F    .call &BC77...;o
013570:  70 65 6E 20 66 69 6C 65 20 66 6F 72 20 69 6E 70    pen file for inp
013580:  75 74 0D 0A 09 6A 70 20 6E 63 2C 65 72 72 6F 72    ut...jp nc,error
013590:  0D 0A 0D 0A 09 6C 64 20 28 64 5F 6C 6F 63 29 2C    .....ld (d_loc),
0135A0:  64 65 0D 0A 09 6C 64 20 28 64 5F 6C 65 6E 29 2C    de...ld (d_len),
0135B0:  62 63 0D 0A 09 6C 64 20 28 64 5F 74 79 70 29 2C    bc...ld (d_typ),
0135C0:  61 0D 0A 09 70 75 73 68 20 64 65 0D 0A 09 20 6C    a...push de... l
0135D0:  64 20 64 65 2C 26 31 41 3A 20 61 64 64 20 68 6C    d de,&1A: add hl
0135E0:  2C 64 65 0D 0A 09 20 6C 64 20 65 2C 28 68 6C 29    ,de... ld e,(hl)
0135F0:  3A 20 69 6E 63 20 68 6C 0D 0A 09 20 6C 64 20 64    : inc hl... ld d
013600:  0D 0A 0D 0A 09 3B 54 79 70 65 20 63 6F 64 65 0D    .....;Type code.
013610:  0A 0D 0A 2E 74 79 70 65 5F 63 09 63 61 6C 6C 20    ....type_c.call 
013620:  26 42 43 37 44 0D 0A 09 6C 64 20 6C 2C 28 69 78    &BC7D...ld l,(ix
013630:  29 3A 20 6C 64 20 68 2C 28 69 78 2B 31 29 0D 0A    ): ld h,(ix+1)..
013640:  09 6C 64 20 62 2C 28 68 6C 29 3A 20 69 6E 63 20    .ld b,(hl): inc 
013650:  68 6C 0D 0A 09 6C 64 20 65 2C 28 68 6C 29 3A 20    hl...ld e,(hl): 
013660:  69 6E 63 20 68 6C 0D 0A 09 6C 64 20 64 2C 28 68    inc hl...ld d,(h
013670:  6C 29 3A 20 65 78 20 64 65 2C 68 6C 0D 0A 09 6C    l): ex de,hl...l
013680:  64 20 64 65 2C 62 75 66 66 65 72 0D 0A 09 63 61    d de,buffer...ca
013690:  6C 6C 20 26 42 43 37 37 0D 0A 09 6A 72 20 6E 63    ll &BC77...jr nc
0136A0:  2C 74 79 70 65 65 78 0D 0A 0D 0A 2E 74 79 70 65    ,typeex.....type
0136B0:  6C 09 63 61 6C 6C 20 26 42 43 38 30 3A 20 6A 72    l.call &BC80: jr
0136C0:  20 6E 63 2C 74 79 70 65 65 78 0D 0A 09 63 70 20     nc,typeex...cp 
0136D0:  31 33 38 3A 20 63 61 6C 6C 20 7A 20 2C 73 75 62    138: call z ,sub
0136E0:  31 32 38 0D 0A 09 63 70 20 31 34 34 3A 20 63 61    128...cp 144: ca
0136F0:  6C 6C 20 7A 20 2C 72 65 70 73 70 63 0D 0A 09 63    ll z ,repspc...c
013700:  70 20 33 32 20 3A 20 6A 72 20 20 20 6E 63 2C 74    p 32 : jr   nc,t
013710:  79 70 63 68 72 0D 0A 09 63 70 20 39 20 20 3A 20    ypchr...cp 9  : 
013720:  6A 72 20 20 20 7A 20 2C 74 79 70 74 61 62 0D 0A    jr   z ,typtab..
013730:  09 63 70 20 31 30 20 3A 20 6A 72 20 20 20 7A 20    .cp 10 : jr   z 
013740:  2C 74 79 70 63 68 72 09 09 09 3B 64 6F 6E 27 74    ,typchr...;don't
013750:  20 70 72 69 6E 74 20 63 6F 6E 74 72 6F 6C 20 63     print control c
013760:  68 61 72 61 63 74 65 72 73 0D 0A 09 63 70 20 31    haracters...cp 1
013770:  33 20 3A 20 6A 72 20 20 20 7A 20 2C 74 79 70 63    3 : jr   z ,typc
013780:  68 72 09 09 09 3B 65 78 63 65 70 74 20 43 52 2F    hr...;except CR/
013790:  4C 46 20 77 69 74 68 6F 75 74 20 73 65 74 74 69    LF without setti
0137A0:  6E 67 0D 0A 09 70 75 73 68 20 61 66 3A 20 6C 64    ng...push af: ld
0137B0:  20 61 2C 31 3A 20 63 61 6C 6C 20 26 42 42 35 41     a,1: call &BB5A
0137C0:  3A 20 70 6F 70 20 61 66 09 3B 22 70 72 69 6E 74    : pop af.;"print
0137D0:  20 67 72 61 70 68 69 63 22 20 6D 6F 64 65 20 66     graphic" mode f
0137E0:  69 72 73 74 21 0D 0A 2E 74 79 70 63 68 72 09 63    irst!...typchr.c
0137F0:  61 6C 6C 20 26 42 42 35 41 3A 20 73 63 66 0D 0A    all &BB5A: scf..
013800:  2C 28 68 6C 29 0D 0A 09 20 6C 64 20 28 66 65 78    ,(hl)... ld (fex
013810:  65 63 29 2C 64 65 09 09 09 3B 67 65 74 20 65 78    ec),de...;get ex
013820:  65 63 75 74 69 6F 6E 20 61 64 64 72 65 73 73 20    ecution address 
013830:  66 72 6F 6D 20 68 65 61 64 65 72 0D 0A 09 70 6F    from header...po
013840:  70 20 68 6C 0D 0A 09 61 64 64 20 68 6C 2C 62 63    p hl...add hl,bc
013850:  0D 0A 09 6C 64 20 28 64 5F 65 6E 64 29 2C 68 6C    ...ld (d_end),hl
013860:  0D 0A 09 63 61 6C 6C 20 26 42 43 37 41 09 09 09    ...call &BC7A...
013870:  3B 63 6C 6F 73 65 20 66 69 6C 65 0D 0A 0D 0A 2E    ;close file.....
013880:  64 69 73 70 69 6E 09 6C 64 20 68 6C 2C 73 74 61    dispin.ld hl,sta
013890:  72 74 3A 20 20 63 61 6C 6C 20 73 74 72 69 6E 67    rt:  call string
0138A0:  3A 20 6C 64 20 68 6C 2C 28 64 5F 6C 6F 63 29 3A    : ld hl,(d_loc):
0138B0:  20 63 61 6C 6C 20 68 65 78 68 6C 0D 0A 09 6C 64     call hexhl...ld
0138C0:  20 68 6C 2C 6C 65 6E 67 74 68 3A 20 63 61 6C 6C     hl,length: call
0138D0:  20 73 74 72 69 6E 67 3A 20 6C 64 20 68 6C 2C 28     string: ld hl,(
0138E0:  64 5F 6C 65 6E 29 3A 20 63 61 6C 6C 20 68 65 78    d_len): call hex
0138F0:  68 6C 0D 0A 09 6C 64 20 68 6C 2C 66 65 78 63 3A    hl...ld hl,fexc:
013900:  20 20 20 63 61 6C 6C 20 73 74 72 69 6E 67 3A 20       call string: 
013910:  6C 64 20 68 6C 2C 28 66 65 78 65 63 29 3A 20 63    ld hl,(fexec): c
013920:  61 6C 6C 20 68 65 78 68 6C 0D 0A 09 6C 64 20 68    all hexhl...ld h
013930:  6C 2C 64 61 74 65 6E 64 3A 20 63 61 6C 6C 20 73    l,datend: call s
013940:  74 72 69 6E 67 3A 20 6C 64 20 68 6C 2C 28 64 5F    tring: ld hl,(d_
013950:  65 6E 64 29 3A 20 63 61 6C 6C 20 68 65 78 68 6C    end): call hexhl
013960:  0D 0A 09 6C 64 20 68 6C 2C 66 6C 74 79 70 65 3A    ...ld hl,fltype:
013970:  20 63 61 6C 6C 20 73 74 72 69 6E 67 3A 20 6C 64     call string: ld
013980:  20 61 20 2C 28 64 5F 74 79 70 29 3A 20 63 61 6C     a ,(d_typ): cal
013990:  6C 20 68 65 78 70 72 74 0D 0A 09 6C 64 20 61 2C    l hexprt...ld a,
0139A0:  22 20 22 3A 20 63 61 6C 6C 20 26 42 42 35 41 0D    " ": call &BB5A.
0139B0:  0A 09 6C 64 20 61 2C 22 28 22 3A 20 63 61 6C 6C    ..ld a,"(": call
0139C0:  20 26 42 42 35 41 0D 0A 09 6C 64 20 61 2C 28 64     &BB5A...ld a,(d
0139D0:  5F 74 79 70 29 3A 20 62 69 74 20 30 2C 61 0D 0A    _typ): bit 0,a..
0139E0:  09 6C 64 20 68 6C 2C 70 72 6F 74 78 74 3A 20 63    .ld hl,protxt: c
0139F0:  61 6C 6C 20 6E 7A 2C 73 74 72 69 6E 67 0D 0A 09    all nz,string...
013A00:  2E 70 72 6E 63 68 72 09 70 75 73 68 20 61 66 3A    .prnchr.push af:
013A10:  20 63 61 6C 6C 20 26 42 44 32 42 3A 20 70 6F 70     call &BD2B: pop
013A20:  20 61 66 3A 20 6A 72 20 6E 63 2C 70 72 6E 63 68     af: jr nc,prnch
013A30:  72 0D 0A 2E 74 79 70 64 6F 6E 65 20 63 61 6C 6C    r...typdone call
013A40:  20 26 42 42 30 39 3A 20 6A 72 20 6E 63 2C 74 79     &BB09: jr nc,ty
013A50:  70 65 6C 09 09 3B 69 66 20 6B 65 79 20 6E 6F 74    pel..;if key not
013A60:  20 70 72 65 73 73 65 64 2C 20 6C 6F 6F 70 0D 0A     pressed, loop..
013A70:  09 63 61 6C 6C 20 26 42 42 30 36 3A 20 63 70 20    .call &BB06: cp 
013A80:  26 46 43 3A 20 6A 72 20 6E 7A 2C 74 79 70 65 6C    &FC: jr nz,typel
013A90:  09 09 3B 71 75 69 74 20 69 66 20 45 53 43 0D 0A    ..;quit if ESC..
013AA0:  0D 0A 2E 74 79 70 65 65 78 09 63 61 6C 6C 20 26    ...typeex.call &
013AB0:  42 43 37 44 3A 20 72 65 74 0D 0A 0D 0A 2E 73 75    BC7D: ret.....su
013AC0:  62 31 32 38 09 61 6E 64 20 31 32 37 3A 20 72 65    b128.and 127: re
013AD0:  74 09 09 09 09 3B 50 72 6F 74 65 78 74 20 73 6F    t....;Protext so
013AE0:  66 74 20 6C 69 6E 65 20 66 65 65 64 73 0D 0A 2E    ft line feeds...
013AF0:  72 65 70 73 70 63 09 6C 64 20 61 2C 22 20 22 3A    repspc.ld a," ":
013B00:  20 72 65 74 09 09 09 09 3B 50 72 6F 74 65 78 74     ret....;Protext
013B10:  20 73 6F 66 74 20 73 70 61 63 65 73 0D 0A 2E 74     soft spaces...t
013B20:  79 70 74 61 62 09 6C 64 20 61 2C 22 20 22 3A 20    yptab.ld a," ": 
013B30:  63 61 6C 6C 20 26 42 42 35 41 09 09 09 3B 54 41    call &BB5A...;TA
013B40:  42 20 68 61 6E 64 6C 69 6E 67 20 28 65 76 65 72    B handling (ever
013B50:  79 20 38 20 73 70 61 63 65 73 29 0D 0A 09 63 61    y 8 spaces)...ca
013B60:  6C 6C 20 26 42 42 37 38 3A 20 6C 64 20 61 2C 68    ll &BB78: ld a,h
013B70:  3A 20 64 65 63 20 61 3A 20 61 6E 64 20 37 0D 0A    : dec a: and 7..
013B80:  09 6A 72 20 6E 7A 2C 74 79 70 74 61 62 3A 20 6A    .jr nz,typtab: j
013B90:  72 20 74 79 70 64 6F 6E 65 0D 0A 0D 0A 09 3B 2A    r typdone.....;*
013BA0:  2A 2A 20 52 53 58 09 7C 43 41 54 2C 64 72 69 76    ** RSX.|CAT,driv
013BB0:  65 0D 0A 0D 0A 2E 63 61 74 6C 5F 69 09 6F 72 20    e.....catl_i.or 
013BC0:  61 3A 20 6A 72 20 7A 2C 64 6F 72 63 61 74 0D 0A    a: jr z,dorcat..
013BD0:  2E 63 74 68 69 6E 67 09 6C 64 20 68 6C 2C 28 26    .cthing.ld hl,(&
013BE0:  42 45 37 44 29 3A 20 6C 64 20 61 2C 28 68 6C 29    BE7D): ld a,(hl)
013BF0:  0D 0A 09 70 75 73 68 20 61 66 3A 20 70 75 73 68    ...push af: push
013C00:  6C 64 20 61 2C 28 64 5F 74 79 70 29 3A 20 61 6E    ld a,(d_typ): an
013C10:  64 20 31 34 0D 0A 09 6C 64 20 68 6C 2C 73 68 62    d 14...ld hl,shb
013C20:  61 73 63 3A 20 63 70 20 30 3A 20 6A 70 20 7A 2C    asc: cp 0: jp z,
013C30:  73 68 73 74 6E 67 0D 0A 09 6C 64 20 68 6C 2C 73    shstng...ld hl,s
013C40:  68 62 69 6E 72 3A 20 63 70 20 32 3A 20 6A 70 20    hbinr: cp 2: jp 
013C50:  7A 2C 73 68 73 74 6E 67 0D 0A 09 6C 64 20 68 6C    z,shstng...ld hl
013C60:  2C 73 68 61 73 63 69 3A 20 63 70 20 36 3A 20 6A    ,shasci: cp 6: j
013C70:  70 20 7A 2C 73 68 73 74 6E 67 0D 0A 09 6C 64 20    p z,shstng...ld 
013C80:  68 6C 2C 73 68 75 6E 6B 6E 0D 0A 2E 73 68 73 74    hl,shunkn...shst
013C90:  6E 67 09 6A 70 20 73 74 72 69 6E 67 0D 0A 0D 0A    ng.jp string....
013CA0:  2E 64 5F 6C 6F 63 09 65 71 75 20 26 41 46 30 30    .d_loc.equ &AF00
013CB0:  0D 0A 2E 64 5F 6C 65 6E 09 65 71 75 20 26 41 46    ...d_len.equ &AF
013CC0:  30 32 0D 0A 2E 64 5F 74 79 70 09 65 71 75 20 26    02...d_typ.equ &
013CD0:  41 46 30 34 0D 0A 2E 64 5F 65 6E 64 09 65 71 75    AF04...d_end.equ
013CE0:  20 26 41 46 30 36 0D 0A 2E 66 65 78 65 63 09 65     &AF06...fexec.e
013CF0:  71 75 20 26 41 46 30 38 0D 0A 0D 0A 2E 73 74 61    qu &AF08.....sta
013D00:  72 74 09 64 62 20 31 30 2C 31 33 0D 0A 2E 73 74    rt.db 10,13...st
013D10:  61 72 74 31 09 64 62 20 20 20 20 20 20 20 22 53    art1.db       "S
013D20:  74 61 72 74 20 61 64 64 72 65 73 73 20 20 3A 20    tart address  : 
013D30:  26 22 2C 30 0D 0A 2E 6C 65 6E 67 74 68 09 64 62    &",0...length.db
013D40:  20 31 30 2C 31 33 2C 22 4C 65 6E 67 74 68 20 20     10,13,"Length  
013D50:  20 20 20 20 20 20 20 3A 20 26 22 2C 30 0D 0A 2E           : &",0...
013D60:  66 65 78 63 09 64 62 20 31 30 2C 31 33 2C 22 45    fexc.db 10,13,"E
013D70:  78 65 63 75 74 65 20 61 64 64 72 65 73 73 3A 20    xecute address: 
013D80:  26 22 2C 30 0D 0A 2E 64 61 74 65 6E 64 09 64 62    &",0...datend.db
013D90:  20 31 30 2C 31 33 2C 22 45 6E 64 20 61 64 64 72     10,13,"End addr
013DA0:  65 73 73 20 20 20 20 3A 20 26 22 2C 30 0D 0A 2E    ess    : &",0...
013DB0:  66 6C 74 79 70 65 09 64 62 20 31 30 2C 31 33 2C    fltype.db 10,13,
013DC0:  22 46 69 6C 65 20 74 79 70 65 20 20 20 20 20 20    "File type      
013DD0:  3A 20 26 22 2C 30 0D 0A 2E 70 72 6F 74 78 74 09    : &",0...protxt.
013DE0:  64 62 20 22 70 72 6F 74 65 63 74 65 64 20 22 2C    db "protected ",
013DF0:  30 0D 0A 2E 73 68 62 61 73 63 09 64 62 20 22 42    0...shbasc.db "B
013E00:  20 68 6C 0D 0A 09 20 6C 64 20 61 2C 28 69 78 29     hl... ld a,(ix)
013E10:  3A 20 6C 64 20 28 68 6C 29 2C 61 0D 0A 09 20 63    : ld (hl),a... c
013E20:  61 6C 6C 20 64 6F 72 63 61 74 0D 0A 09 70 6F 70    all dorcat...pop
013E30:  20 68 6C 3A 20 70 6F 70 20 61 66 0D 0A 09 6C 64     hl: pop af...ld
013E40:  20 28 68 6C 29 2C 61 3A 20 72 65 74 0D 0A 0D 0A     (hl),a: ret....
013E50:  2E 64 6F 72 63 61 74 09 6C 64 20 64 65 2C 62 75    .dorcat.ld de,bu
013E60:  66 66 65 72 3A 20 6A 70 20 26 42 43 39 42 0D 0A    ffer: jp &BC9B..
013E70:  09 72 65 74 0D 0A 0D 0A 09 3B 2A 2A 2A 20 52 53    .ret.....;*** RS
013E80:  58 09 7C 44 45 50 52 4F 54 45 43 54 2C 40 61 24    X.|DEPROTECT,@a$
013E90:  0D 0A 0D 0A 2E 64 70 72 6F 5F 69 09 63 70 20 31    .....dpro_i.cp 1
013EA0:  3A 20 6A 70 20 6E 7A 2C 70 61 72 65 72 72 09 09    : jp nz,parerr..
013EB0:  3B 61 62 6F 72 74 20 69 66 20 6E 6F 74 20 70 72    ;abort if not pr
013EC0:  65 73 65 6E 74 0D 0A 0D 0A 09 6C 64 20 6C 2C 28    esent.....ld l,(
013ED0:  69 78 2B 30 29 3A 20 6C 64 20 68 2C 28 69 78 2B    ix+0): ld h,(ix+
013EE0:  31 29 0D 0A 09 6C 64 20 62 2C 28 68 6C 29 3A 20    1)...ld b,(hl): 
013EF0:  69 6E 63 20 68 6C 09 09 3B 73 74 72 69 6E 67 20    inc hl..;string 
013F00:  61 64 64 72 65 73 73 0D 0A 09 6C 64 20 65 2C 28    address...ld e,(
013F10:  68 6C 29 3A 20 69 6E 63 20 68 6C 0D 0A 09 6C 64    hl): inc hl...ld
013F20:  20 64 2C 28 68 6C 29 3A 20 65 78 20 64 65 2C 68     d,(hl): ex de,h
013F30:  6C 0D 0A 09 6C 64 20 64 65 2C 62 75 66 66 65 72    l...ld de,buffer
013F40:  3A 20 63 61 6C 6C 20 26 42 43 37 37 09 3B 6F 70    : call &BC77.;op
013F50:  65 6E 20 66 69 6C 65 20 66 6F 72 20 69 6E 70 75    en file for inpu
013F60:  74 0D 0A 09 6A 70 20 6E 63 2C 65 72 72 6F 72 0D    t...jp nc,error.
013F70:  0A 09 63 70 20 32 3A 20 6A 70 20 6E 63 2C 65 72    ..cp 2: jp nc,er
013F80:  72 6F 72 09 09 3B 69 66 20 6E 6F 74 20 61 20 70    ror..;if not a p
013F90:  72 6F 74 65 63 74 65 64 20 42 41 53 49 43 20 66    rotected BASIC f
013FA0:  69 6C 65 0D 0A 09 70 75 73 68 20 64 65 0D 0A 09    ile...push de...
013FB0:  20 6C 64 20 69 78 2C 26 41 45 36 36 09 09 09 3B     ld ix,&AE66...;
013FC0:  42 41 53 49 43 20 31 2E 31 20 76 61 72 69 61 62    BASIC 1.1 variab
013FD0:  6C 65 20 2D 20 6C 65 6E 67 74 68 0D 0A 09 20 6C    le - length... l
013FE0:  64 20 61 2C 28 36 29 3A 20 63 70 20 31 32 38 3A    d a,(6): cp 128:
013FF0:  20 6A 72 20 6E 7A 2C 6E 6F 74 34 36 34 09 3B 34     jr nz,not464.;4
014000:  41 53 49 43 29 22 2C 31 30 2C 31 33 2C 30 0D 0A    ASIC)",10,13,0..
014010:  2E 73 68 62 69 6E 72 09 64 62 20 22 62 69 6E 61    .shbinr.db "bina
014020:  72 79 29 22 2C 31 30 2C 31 33 2C 30 0D 0A 2E 73    ry)",10,13,0...s
014030:  68 61 73 63 69 09 64 62 20 22 41 53 43 49 49 29    hasci.db "ASCII)
014040:  22 2C 31 30 2C 31 33 2C 30 0D 0A 2E 73 68 75 6E    ",10,13,0...shun
014050:  6B 6E 09 64 62 20 22 75 6E 6B 6E 6F 77 6E 29 22    kn.db "unknown)"
014060:  2C 31 30 2C 31 33 2C 30 0D 0A 0D 0A 09 3B 2A 2A    ,10,13,0.....;**
014070:  2A 20 53 55 42 52 09 53 74 72 69 6E 67 20 70 72    * SUBR.String pr
014080:  69 6E 74 0D 0A 0D 0A 2E 73 74 72 69 6E 67 09 6C    int.....string.l
014090:  64 20 61 2C 28 68 6C 29 3A 20 6F 72 20 61 3A 20    d a,(hl): or a: 
0140A0:  72 65 74 20 7A 0D 0A 09 63 61 6C 6C 20 26 42 42    ret z...call &BB
0140B0:  35 41 0D 0A 09 69 6E 63 20 68 6C 3A 20 6A 72 20    5A...inc hl: jr 
0140C0:  73 74 72 69 6E 67 0D 0A 0D 0A 09 3B 2A 2A 2A 20    string.....;*** 
0140D0:  53 55 42 52 09 43 6F 6E 76 65 72 74 20 74 6F 20    SUBR.Convert to 
0140E0:  75 70 70 65 72 20 63 61 73 65 0D 0A 0D 0A 2E 75    upper case.....u
0140F0:  63 61 73 65 09 63 70 20 20 26 36 31 3A 20 72 65    case.cp  &61: re
014100:  74 20 63 0D 0A 09 63 70 20 20 26 37 42 3A 20 72    t c...cp  &7B: r
014110:  65 74 20 6E 63 0D 0A 09 61 64 64 20 26 45 30 3A    et nc...add &E0:
014120:  20 72 65 74 0D 0A 0D 0A 09 3B 2A 2A 2A 20 53 55     ret.....;*** SU
014130:  42 52 09 48 65 78 20 70 72 69 6E 74 20 77 69 74    BR.Hex print wit
014140:  68 6F 75 74 20 63 6F 72 72 75 70 74 69 6F 6E 0D    hout corruption.
014150:  0A 0D 0A 2E 68 65 78 6E 63 09 70 75 73 68 20 62    ....hexnc.push b
014160:  63 3A 20 63 61 6C 6C 20 68 65 78 70 72 74 3A 20    c: call hexprt: 
014170:  70 6F 70 20 62 63 3A 20 72 65 74 0D 0A 0D 0A 09    pop bc: ret.....
014180:  3B 2A 2A 2A 20 53 55 42 52 09 31 2D 62 79 74 65    ;*** SUBR.1-byte
014190:  20 68 65 78 20 70 72 69 6E 74 20 5B 41 5D 0D 0A     hex print [A]..
0141A0:  0D 0A 2E 68 65 78 70 72 74 09 6C 64 20 62 2C 32    ...hexprt.ld b,2
0141B0:  3A 20 6C 64 20 63 2C 61 0D 0A 09 72 72 61 3A 20    : ld c,a...rra: 
0141C0:  72 72 61 3A 20 72 72 61 3A 20 72 72 61 0D 0A 2E    rra: rra: rra...
0141D0:  68 65 78 6D 73 6B 09 61 6E 64 20 26 46 0D 0A 09    hexmsk.and &F...
0141E0:  63 70 20 31 30 3A 20 6A 72 20 63 2C 68 65 78 62    cp 10: jr c,hexb
0141F0:  79 65 0D 0A 09 61 64 64 20 37 09 09 09 09 3B 41    ye...add 7....;A
014200:  36 34 3F 0D 0A 09 20 6C 64 20 69 78 2C 26 41 45    64?... ld ix,&AE
014210:  38 33 09 09 09 3B 42 41 53 49 43 20 31 2E 30 20    83...;BASIC 1.0 
014220:  76 61 72 69 61 62 6C 65 20 2D 20 6C 65 6E 67 74    variable - lengt
014230:  68 0D 0A 2E 6E 6F 74 34 36 34 09 20 65 78 20 64    h...not464. ex d
014240:  65 2C 68 6C 3A 20 61 64 64 20 68 6C 2C 62 63 0D    e,hl: add hl,bc.
014250:  0A 09 20 6C 64 20 28 69 78 2B 30 29 2C 6C 3A 20    .. ld (ix+0),l: 
014260:  6C 64 20 28 69 78 2B 31 29 2C 68 0D 0A 09 20 6C    ld (ix+1),h... l
014270:  64 20 28 69 78 2B 32 29 2C 6C 3A 20 6C 64 20 28    d (ix+2),l: ld (
014280:  69 78 2B 33 29 2C 68 0D 0A 09 20 6C 64 20 28 69    ix+3),h... ld (i
014290:  78 2B 34 29 2C 6C 3A 20 6C 64 20 28 69 78 2B 35    x+4),l: ld (ix+5
0142A0:  29 2C 68 0D 0A 09 20 6C 64 20 28 69 78 2B 36 29    ),h... ld (ix+6)
0142B0:  2C 6C 3A 20 6C 64 20 28 69 78 2B 37 29 2C 68 0D    ,l: ld (ix+7),h.
0142C0:  0A 09 70 6F 70 20 68 6C 0D 0A 09 63 61 6C 6C 20    ..pop hl...call 
0142D0:  26 42 43 38 33 3A 20 63 61 6C 6C 20 26 42 43 37    &BC83: call &BC7
0142E0:  41 09 09 3B 67 65 74 20 66 69 6C 65 20 61 6E 64    A..;get file and
0142F0:  20 63 6C 6F 73 65 0D 0A 09 72 65 74 0D 0A 0D 0A     close...ret....
014300:  09 3B 2A 2A 2A 20 52 53 58 09 7C 4C 4F 41 44 2C    .;*** RSX.|LOAD,
014310:  40 61 24 2C 61 64 64 72 65 73 73 0D 0A 0D 0A 2E    @a$,address.....
014320:  6C 6F 61 64 5F 69 09 63 70 20 32 3A 20 6A 70 20    load_i.cp 2: jp 
014330:  6E 7A 2C 70 61 72 65 72 72 0D 0A 0D 0A 09 6C 64    nz,parerr.....ld
014340:  20 6C 2C 28 69 78 29 3A 20 6C 64 20 68 2C 28 69     l,(ix): ld h,(i
014350:  78 2B 31 29 0D 0A 09 70 75 73 68 20 68 6C 0D 0A    x+1)...push hl..
014360:  09 20 6C 64 20 6C 2C 28 69 78 2B 32 29 3A 20 6C    . ld l,(ix+2): l
014370:  64 20 68 2C 28 69 78 2B 33 29 0D 0A 09 20 6C 64    d h,(ix+3)... ld
014380:  20 62 2C 28 68 6C 29 3A 20 69 6E 63 20 68 6C 0D     b,(hl): inc hl.
014390:  0A 09 20 6C 64 20 65 2C 28 68 6C 29 3A 20 69 6E    .. ld e,(hl): in
0143A0:  63 20 68 6C 0D 0A 09 20 6C 64 20 64 2C 28 68 6C    c hl... ld d,(hl
0143B0:  29 3A 20 65 78 20 64 65 2C 68 6C 0D 0A 09 20 6C    ): ex de,hl... l
0143C0:  64 20 64 65 2C 62 75 66 66 65 72 09 09 09 3B 32    d de,buffer...;2
0143D0:  6B 20 62 75 66 66 65 72 0D 0A 09 20 70 75 73 68    k buffer... push
0143E0:  20 62 63 0D 0A 09 20 20 63 61 6C 6C 20 26 42 43     bc...  call &BC
0143F0:  37 37 09 09 09 3B 6F 70 65 6E 20 66 69 6C 65 20    77...;open file 
014400:  54 72 61 63 6B 2D 49 6E 66 6F 0D 0A 00 00 00 00    Track-Info......
014410:  11 00 01 00 02 09 4E E5 11 00 C3 02 00 00 00 02    ......N.........
014420:  11 00 C8 02 00 00 00 02 11 00 C4 02 00 00 00 02    ................
014430:  11 00 C9 02 00 00 00 02 11 00 C5 02 00 00 00 02    ................
014440:  11 00 C1 02 00 00 00 02 11 00 C6 02 00 00 00 02    ................
014450:  11 00 C2 02 00 00 00 02 11 00 C7 02 00 00 00 02    ................
014460:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
014470:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
014480:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
014490:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
0144A0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
0144B0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
0144C0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
0144D0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
0144E0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
0144F0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
014500:  64 62 20 22 55 6E 6B 6E 6F 77 6E 20 63 6F 6D 6D    db "Unknown comm
014510:  61 6E 64 22 2C 30 0D 0A 2E 6B 65 79 74 78 74 09    and",0...keytxt.
014520:  64 62 20 22 43 6F 75 6C 64 20 6E 6F 74 20 73 65    db "Could not se
014530:  74 20 6B 65 79 22 2C 30 0D 0A 0D 0A 09 3B 2A 2A    t key",0.....;**
014540:  2A 20 53 55 42 52 09 4C 44 20 41 2C 28 48 4C 29    * SUBR.LD A,(HL)
014550:  20 2D 20 65 78 74 72 61 20 62 61 6E 6B 73 0D 0A     - extra banks..
014560:  0D 0A 2E 6C 64 61 68 6C 09 70 75 73 68 20 62 63    ...ldahl.push bc
014570:  3A 20 70 75 73 68 20 68 6C 0D 0A 09 20 6C 64 20    : push hl... ld 
014580:  62 2C 61 3A 20 6C 64 20 61 2C 68 3A 20 61 6E 64    b,a: ld a,h: and
014590:  20 26 43 30 0D 0A 2E 62 6E 6B 70 31 09 20 72 6C     &C0...bnkp1. rl
0145A0:  63 61 3A 20 72 6C 63 61 3A 20 61 64 64 20 26 43    ca: rlca: add &C
0145B0:  34 0D 0A 09 20 6C 64 20 63 2C 61 0D 0A 09 20 6C    4... ld c,a... l
0145C0:  64 20 61 2C 68 3A 20 61 6E 64 20 26 33 46 3A 20    d a,h: and &3F: 
0145D0:  6F 72 20 26 34 30 3A 20 6C 64 20 68 2C 61 0D 0A    or &40: ld h,a..
0145E0:  09 20 6C 64 20 61 2C 62 3A 20 6C 64 20 62 2C 26    . ld a,b: ld b,&
0145F0:  37 46 0D 0A 09 20 6F 75 74 20 28 63 29 2C 63 3A    7F... out (c),c:
014600:  20 6C 64 20 61 2C 28 68 6C 29 0D 0A 09 20 6C 64     ld a,(hl)... ld
014610:  20 63 2C 26 43 30 3A 20 6F 75 74 20 28 63 29 2C     c,&C0: out (c),
014620:  63 0D 0A 09 70 6F 70 20 68 6C 3A 20 70 6F 70 20    c...pop hl: pop 
014630:  62 63 0D 0A 09 72 65 74 0D 0A 0D 0A 09 3B 2A 2A    bc...ret.....;**
014640:  2A 20 53 55 42 52 09 4C 44 20 28 48 4C 29 2C 41    * SUBR.LD (HL),A
014650:  20 2D 20 65 78 74 72 61 20 62 61 6E 6B 73 0D 0A     - extra banks..
014660:  0D 0A 2E 6C 64 68 6C 61 09 70 75 73 68 20 62 63    ...ldhla.push bc
014670:  3A 20 70 75 73 68 20 68 6C 0D 0A 09 20 6C 64 20    : push hl... ld 
014680:  62 2C 61 3A 20 6C 64 20 61 2C 68 3A 20 61 6E 64    b,a: ld a,h: and
014690:  20 26 43 30 0D 0A 2E 62 6E 6B 70 32 09 20 72 6C     &C0...bnkp2. rl
0146A0:  63 61 3A 20 72 6C 63 61 3A 20 61 64 64 20 26 43    ca: rlca: add &C
0146B0:  34 0D 0A 09 20 6C 64 20 63 2C 61 0D 0A 09 20 6C    4... ld c,a... l
0146C0:  64 20 61 2C 68 3A 20 61 6E 64 20 26 33 46 3A 20    d a,h: and &3F: 
0146D0:  6F 72 20 26 34 30 3A 20 6C 64 20 68 2C 61 0D 0A    or &40: ld h,a..
0146E0:  09 20 6C 64 20 61 2C 62 3A 20 6C 64 20 62 2C 26    . ld a,b: ld b,&
0146F0:  37 46 0D 0A 09 20 6F 75 74 20 28 63 29 2C 63 3A    7F... out (c),c:
014700:  6A 70 20 43 4F 50 59 41 42 0D 0A 09 6A 70 20 43    jp COPYAB...jp C
014710:  4F 50 59 42 41 0D 0A 09 6A 70 20 42 52 55 4E 0D    OPYBA...jp BRUN.
014720:  0A 09 6A 70 20 48 45 4C 50 0D 0A 09 6A 70 20 48    ..jp HELP...jp H
014730:  45 41 44 45 52 0D 0A 09 6A 70 20 42 41 53 4C 4F    EADER...jp BASLO
014740:  44 0D 0A 09 6A 70 20 53 4C 4F 41 44 0D 0A 09 6A    D...jp SLOAD...j
014750:  70 20 43 41 54 0D 0A 0D 0A 2E 6E 61 6D 74 61 62    p CAT.....namtab
014760:  20 69 66 20 72 6F 6D 0D 0A 09 20 73 74 72 20 22     if rom... str "
014770:  53 2D 44 4F 53 20 22 0D 0A 09 65 6E 64 69 66 0D    S-DOS "...endif.
014780:  0A 09 73 74 72 20 22 53 46 4F 52 4D 41 54 22 0D    ..str "SFORMAT".
014790:  0A 09 73 74 72 20 22 53 56 45 52 49 46 59 22 0D    ..str "SVERIFY".
0147A0:  0A 09 73 74 72 20 22 41 4D 53 44 4F 53 22 0D 0A    ..str "AMSDOS"..
0147B0:  09 73 74 72 20 22 43 4F 50 59 41 42 22 0D 0A 09    .str "COPYAB"...
0147C0:  73 74 72 20 22 43 4F 50 59 42 41 22 0D 0A 09 73    str "COPYBA"...s
0147D0:  74 72 20 22 42 52 55 4E 22 0D 0A 09 73 74 72 20    tr "BRUN"...str 
0147E0:  22 53 48 45 4C 50 22 0D 0A 09 73 74 72 20 22 53    "SHELP"...str "S
0147F0:  48 45 41 44 45 52 22 0D 0A 09 73 74 72 20 22 53    HEADER"...str "S
014800:  50 4C 4F 41 44 22 0D 0A 09 73 74 72 20 22 53 4C    PLOAD"...str "SL
014810:  4F 41 44 22 0D 0A 09 73 74 72 20 22 43 41 54 22    OAD"...str "CAT"
014820:  0D 0A 09 6E 6F 70 0D 0A 0D 0A 09 3B 3E 3E 3E 20    ...nop.....;>>> 
014830:  49 6E 69 74 69 61 6C 69 73 61 74 69 6F 6E 20 65    Initialisation e
014840:  6E 74 72 79 0D 0A 0D 0A 2E 69 6E 69 74 65 6E 09    ntry.....initen.
014850:  6C 64 20 61 2C 31 0D 0A 09 70 75 73 68 20 68 6C    ld a,1...push hl
014860:  3A 70 75 73 68 20 64 65 20 3B 70 72 65 73 65 72    :push de ;preser
014870:  76 65 20 69 6D 70 6F 72 74 61 6E 74 20 73 79 73    ve important sys
014880:  74 65 6D 20 72 65 67 69 73 74 65 72 73 0D 0A 09    tem registers...
014890:  70 75 73 68 20 69 78 3A 70 75 73 68 20 69 79 20    push ix:push iy 
0148A0:  0D 0A 09 63 61 6C 6C 20 66 6F 72 6D 61 74 09 3B    ...call format.;
0148B0:  53 65 74 20 75 70 20 53 2D 44 4F 53 20 66 6F 72    Set up S-DOS for
0148C0:  6D 61 74 0D 0A 09 6C 64 20 68 6C 2C 74 69 74 6C    mat...ld hl,titl
0148D0:  65 09 3B 61 64 64 72 65 73 73 20 6F 66 20 52 4F    e.;address of RO
0148E0:  4D 20 6C 6F 67 6F 6E 20 74 69 74 6C 65 0D 0A 09    M logon title...
0148F0:  63 61 6C 6C 20 73 74 72 69 6E 67 09 3B 50 72 69    call string.;Pri
014900:  20 6C 64 20 28 68 6C 29 2C 61 0D 0A 09 20 6C 64     ld (hl),a... ld
014910:  20 63 2C 26 43 30 3A 20 6F 75 74 20 28 63 29 2C     c,&C0: out (c),
014920:  63 0D 0A 09 70 6F 70 20 68 6C 3A 20 70 6F 70 20    c...pop hl: pop 
014930:  62 63 0D 0A 09 72 65 74 0D 0A 0D 0A 09 3B 2A 2A    bc...ret.....;**
014940:  2A 20 53 55 42 52 09 44 69 73 63 20 64 72 69 76    * SUBR.Disc driv
014950:  65 20 63 6F 6E 6E 65 63 74 65 64 3F 0D 0A 0D 0A    e connected?....
014960:  2E 66 6E 64 64 73 63 09 6C 64 20 68 6C 2C 64 73    .fnddsc.ld hl,ds
014970:  63 72 73 78 3A 20 63 61 6C 6C 20 26 42 43 44 34    crsx: call &BCD4
014980:  0D 0A 09 73 62 63 20 61 3A 20 72 65 74 0D 0A 0D    ...sbc a: ret...
014990:  0A 2E 64 73 63 72 73 78 09 73 74 72 20 22 44 49    ..dscrsx.str "DI
0149A0:  53 43 22 0D 0A 0D 0A 09 3B 2A 2A 2A 20 44 41 54    SC".....;*** DAT
0149B0:  41 09 46 69 6C 65 20 62 75 66 66 65 72 0D 0A 0D    A.File buffer...
0149C0:  0A 2E 62 75 66 66 65 72 09 64 62 20 30 0D 0A 1A    ..buffer.db 0...
0149D0:  43 6F 64 69 6E 67 20 70 72 6F 64 75 63 74 69 6F    Coding productio
0149E0:  6E 0D 0A 09 3B 66 6F 72 20 52 6F 62 6F 74 20 50    n...;for Robot P
0149F0:  44 20 61 6E 64 20 41 6D 73 74 72 61 64 20 41 63    D and Amstrad Ac
014A00:  20 6C 64 20 61 2C 28 68 6C 29 0D 0A 09 20 6C 64     ld a,(hl)... ld
014A10:  20 63 2C 26 43 30 3A 20 6F 75 74 20 28 63 29 2C     c,&C0: out (c),
014A20:  63 0D 0A 09 70 6F 70 20 68 6C 3A 20 70 6F 70 20    c...pop hl: pop 
014A30:  62 63 0D 0A 09 72 65 74 0D 0A 0D 0A 09 3B 2A 2A    bc...ret.....;**
014A40:  2A 20 53 55 42 52 09 4C 44 20 28 48 4C 29 2C 41    * SUBR.LD (HL),A
014A50:  20 2D 20 65 78 74 72 61 20 62 61 6E 6B 73 0D 0A     - extra banks..
014A60:  0D 0A 2E 6C 64 68 6C 61 09 70 75 73 68 20 62 63    ...ldhla.push bc
014A70:  3A 20 70 75 73 68 20 68 6C 0D 0A 09 20 6C 64 20    : push hl... ld 
014A80:  62 2C 61 3A 20 6C 64 20 61 2C 68 3A 20 61 6E 64    b,a: ld a,h: and
014A90:  20 26 43 30 0D 0A 2E 62 6E 6B 70 32 09 20 72 6C     &C0...bnkp2. rl
014AA0:  63 61 3A 20 72 6C 63 61 3A 20 61 64 64 20 26 43    ca: rlca: add &C
014AB0:  34 0D 0A 09 20 6C 64 20 63 2C 61 0D 0A 09 20 6C    4... ld c,a... l
014AC0:  64 20 61 2C 68 3A 20 61 6E 64 20 26 33 46 3A 20    d a,h: and &3F: 
014AD0:  6F 72 20 26 34 30 3A 20 6C 64 20 68 2C 61 0D 0A    or &40: ld h,a..
014AE0:  09 20 6C 64 20 61 2C 62 3A 20 6C 64 20 62 2C 26    . ld a,b: ld b,&
014AF0:  37 46 0D 0A 09 20 6F 75 74 20 28 63 29 2C 63 3A    7F... out (c),c:
014B00:  6E 74 20 69 74 20 0D 0A 0D 0A 09 6C 64 20 64 65    nt it .....ld de
014B10:  2C 26 41 46 30 30 0D 0A 09 6C 64 20 68 6C 2C 64    ,&AF00...ld hl,d
014B20:  70 61 72 61 6D 0D 0A 09 6C 64 20 62 63 2C 39 0D    param...ld bc,9.
014B30:  0A 09 70 75 73 68 20 64 65 0D 0A 09 6C 64 69 72    ..push de...ldir
014B40:  09 09 3B 43 6F 70 79 20 74 6F 20 26 41 46 30 30    ..;Copy to &AF00
014B50:  20 28 6E 6F 74 20 69 6E 20 61 20 52 4F 4D 29 0D     (not in a ROM).
014B60:  0A 09 70 6F 70 20 68 6C 0D 0A 09 72 73 74 20 33    ..pop hl...rst 3
014B70:  09 09 3B 53 65 74 20 75 70 20 66 61 73 74 65 72    ..;Set up faster
014B80:  20 64 69 73 63 20 73 70 65 65 64 0D 0A 09 64 77     disc speed...dw
014B90:  20 73 65 74 75 70 0D 0A 0D 0A 09 70 6F 70 20 69     setup.....pop i
014BA0:  79 3A 20 70 6F 70 20 69 78 09 3B 67 65 74 20 74    y: pop ix.;get t
014BB0:  68 65 20 70 72 65 73 65 72 76 65 64 20 72 65 67    he preserved reg
014BC0:  69 73 74 65 72 73 20 62 61 63 6B 20 61 67 61 69    isters back agai
014BD0:  6E 21 0D 0A 09 70 6F 70 20 64 65 3A 20 70 6F 70    n!...pop de: pop
014BE0:  20 68 6C 0D 0A 09 73 63 66 09 09 3B 63 61 72 72     hl...scf..;carr
014BF0:  79 20 66 6C 61 67 20 69 6E 64 69 63 61 74 65 73    y flag indicates
014C00:  20 52 4F 4D 20 69 6E 69 74 2E 20 77 61 73 20 73     ROM init. was s
014C10:  75 63 63 65 73 73 66 75 6C 0D 0A 09 72 65 74 09    uccessful...ret.
014C20:  09 3B 61 6E 64 20 72 65 74 75 72 6E 0D 0A 0D 0A    .;and return....
014C30:  09 3B 3E 3E 3E 20 53 46 4F 52 4D 41 54 20 63 6F    .;>>> SFORMAT co
014C40:  6D 6D 61 6E 64 20 3C 52 6F 62 3E 0D 0A 0D 0A 2E    mmand <Rob>.....
014C50:  66 6F 72 6D 61 74 09 6C 64 20 68 6C 2C 28 26 42    format.ld hl,(&B
014C60:  45 37 44 29 0D 0A 09 6C 64 20 64 65 2C 26 31 64    E7D)...ld de,&1d
014C70:  30 0D 0A 09 61 64 64 20 68 6C 2C 64 65 0D 0A 09    0...add hl,de...
014C80:  65 78 20 68 6C 2C 64 65 09 3B 44 45 20 63 6F 6E    ex hl,de.;DE con
014C90:  74 61 69 6E 73 20 58 50 42 20 61 64 64 72 65 73    tains XPB addres
014CA0:  73 20 66 6F 72 20 64 72 69 76 65 20 42 0D 0A 09    s for drive B...
014CB0:  6C 64 20 68 6C 2C 78 70 62 09 3B 48 4C 20 63 6F    ld hl,xpb.;HL co
014CC0:  6E 74 61 69 6E 73 20 70 6F 69 6E 74 65 72 20 74    ntains pointer t
014CD0:  6F 20 4E 45 57 20 58 50 42 20 66 6F 72 20 64 72    o NEW XPB for dr
014CE0:  69 76 65 20 42 0D 0A 09 6C 64 20 62 63 2C 32 35    ive B...ld bc,25
014CF0:  09 3B 6E 75 6D 62 65 72 20 6F 66 20 65 6E 74 72    .;number of entr
014D00:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
014D10:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
014D20:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
014D30:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
014D40:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
014D50:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
014D60:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
014D70:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
014D80:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
014D90:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
014DA0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
014DB0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
014DC0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
014DD0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
014DE0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
014DF0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
014E00:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
014E10:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
014E20:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
014E30:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
014E40:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
014E50:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
014E60:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
014E70:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
014E80:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
014E90:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
014EA0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
014EB0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
014EC0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
014ED0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
014EE0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
014EF0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
014F00:  6E 74 20 4C 46 2F 43 52 0D 0A 0D 0A 2E 63 72 6C    nt LF/CR.....crl
014F10:  66 09 6C 64 20 61 2C 31 30 3A 20 63 61 6C 6C 20    f.ld a,10: call 
014F20:  26 42 42 35 41 0D 0A 09 6C 64 20 61 2C 31 33 3A    &BB5A...ld a,13:
014F30:  20 63 61 6C 6C 20 26 42 42 35 41 3A 20 72 65 74     call &BB5A: ret
014F40:  0D 0A 0D 0A 09 3B 2A 2A 2A 20 53 55 42 52 09 50    .....;*** SUBR.P
014F50:  72 69 6E 74 20 73 70 65 63 69 61 6C 20 63 68 61    rint special cha
014F60:  72 61 63 74 65 72 0D 0A 0D 0A 2E 70 63 73 70 65    racter.....pcspe
014F70:  63 09 70 75 73 68 20 61 66 3A 20 70 75 73 68 20    c.push af: push 
014F80:  62 63 0D 0A 09 20 6C 64 20 63 2C 61 0D 0A 09 20    bc... ld c,a... 
014F90:  6C 64 20 61 2C 31 3A 20 63 61 6C 6C 20 26 42 42    ld a,1: call &BB
014FA0:  35 41 0D 0A 09 20 6C 64 20 61 2C 63 3A 20 63 61    5A... ld a,c: ca
014FB0:  6C 6C 20 26 42 42 35 41 0D 0A 09 20 6C 64 20 61    ll &BB5A... ld a
014FC0:  2C 72 3A 20 62 69 74 20 37 2C 61 3A 20 6A 72 20    ,r: bit 7,a: jr 
014FD0:  7A 2C 70 63 73 65 6E 64 0D 0A 09 20 6C 64 20 61    z,pcsend... ld a
014FE0:  2C 63 3A 20 63 70 20 33 32 3A 20 6A 72 20 63 2C    ,c: cp 32: jr c,
014FF0:  70 63 73 64 6F 74 0D 0A 09 20 62 69 74 20 37 2C    pcsdot... bit 7,
015000:  61 3A 20 6A 72 20 6E 7A 2C 70 63 73 64 6F 74 0D    a: jr nz,pcsdot.
015010:  0A 09 20 63 61 6C 6C 20 26 42 44 32 42 3A 20 6A    .. call &BD2B: j
015020:  72 20 70 63 73 65 6E 64 0D 0A 2E 70 63 73 64 6F    r pcsend...pcsdo
015030:  74 09 20 6C 64 20 61 2C 22 2E 22 3A 20 63 61 6C    t. ld a,".": cal
015040:  6C 20 26 42 44 32 42 0D 0A 2E 70 63 73 65 6E 64    l &BD2B...pcsend
015050:  09 70 6F 70 20 62 63 3A 20 70 6F 70 20 61 66 3A    .pop bc: pop af:
015060:  20 72 65 74 0D 0A 0D 0A 09 3B 2A 2A 2A 20 53 55     ret.....;*** SU
015070:  42 52 09 45 72 72 6F 72 73 0D 0A 0D 0A 2E 70 61    BR.Errors.....pa
015080:  72 65 72 72 09 6C 64 20 68 6C 2C 70 61 72 74 78    rerr.ld hl,partx
015090:  74 3A 20 63 61 6C 6C 20 73 74 72 69 6E 67 3A 20    t: call string: 
0150A0:  6A 70 20 63 72 6C 66 0D 0A 2E 65 72 72 6F 72 09    jp crlf...error.
0150B0:  6C 64 20 68 6C 2C 65 72 72 74 78 74 3A 20 63 61    ld hl,errtxt: ca
0150C0:  6C 6C 20 73 74 72 69 6E 67 3A 20 6A 70 20 63 72    ll string: jp cr
0150D0:  6C 66 0D 0A 2E 65 73 63 65 72 72 09 6C 64 20 68    lf...escerr.ld h
0150E0:  6C 2C 65 73 63 74 78 74 3A 20 63 61 6C 6C 20 73    l,esctxt: call s
0150F0:  74 72 69 6E 67 3A 20 6A 70 20 63 72 6C 66 0D 0A    tring: jp crlf..
015100:  0D 0A 09 3B 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A    ...;************
015110:  2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A    ****************
015120:  2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 0D    ***************.
015130:  0A 09 3B 2A 20 53 44 4F 53 20 76 65 72 73 69 6F    ..;* SDOS versio
015140:  6E 20 31 2E 30 20 72 65 76 20 32 33 20 20 20 20    n 1.0 rev 23    
015150:  20 20 20 20 20 20 20 20 20 20 20 20 20 2A 0D 0A                 *..
015160:  09 3B 2A 20 57 72 69 74 74 65 6E 20 69 6E 20 5A    .;* Written in Z
015170:  38 30 20 41 53 53 45 4D 42 4C 45 52 20 6F 6E 20    80 ASSEMBLER on 
015180:  61 20 43 50 43 36 36 34 20 20 20 20 2A 0D 0A 09    a CPC664    *...
015190:  3B 2A 20 41 6C 6C 20 63 6F 64 65 20 63 6F 6E 74    ;* All code cont
0151A0:  65 6E 74 20 63 6F 70 79 72 69 67 68 74 20 31 39    ent copyright 19
0151B0:  39 32 20 20 20 20 20 20 20 20 20 2A 0D 0A 09 3B    92         *...;
0151C0:  2A 20 52 6F 62 20 53 63 6F 74 74 20 61 6E 64 20    * Rob Scott and 
0151D0:  52 69 63 68 61 72 64 20 46 61 69 72 68 75 72 73    Richard Fairhurs
0151E0:  74 20 20 20 20 20 20 20 20 20 2A 0D 0A 09 3B 2A    t         *...;*
0151F0:  2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A    ****************
015200:  2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A    ****************
015210:  2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 0D 0A 0D 0A 09 3B    **********.....;
015220:  2B 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D    +---------------
015230:  2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D    ----------------
015240:  2D 2D 2D 2D 2D 2B 0D 0A 09 3B 7C 20 44 61 74 65    -----+...;| Date
015250:  20 50 72 6F 67 72 61 6D 6D 65 64 20 20 20 54 75     Programmed   Tu
015260:  65 2F 57 65 64 20 32 35 2F 30 33 2F 39 32 20 7C    e/Wed 25/03/92 |
015270:  0D 0A 09 3B 7C 20 52 65 76 69 73 69 6F 6E 20 4E    ...;| Revision N
015280:  75 6D 62 65 72 20 20 20 32 33 20 20 20 20 20 20    umber   23      
015290:  20 20 20 20 20 20 20 20 20 7C 0D 0A 09 3B 7C 20             |...;| 
0152A0:  4C 61 6E 67 75 61 67 65 20 20 20 20 20 20 20 20    Language        
0152B0:  20 20 5A 38 30 20 6D 61 63 68 69 6E 65 20 63 6F      Z80 machine co
0152C0:  64 65 20 7C 0D 0A 09 3B 7C 20 56 65 72 73 69 6F    de |...;| Versio
0152D0:  6E 20 54 79 70 65 20 20 20 20 20 20 52 4F 4D 2F    n Type      ROM/
0152E0:  64 69 73 63 20 69 6D 61 67 65 20 20 20 7C 0D 0A    disc image   |..
0152F0:  09 3B 2B 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D    .;+-------------
015300:  2E 6F 76 72 65 72 72 09 6C 64 20 68 6C 2C 6F 76    .ovrerr.ld hl,ov
015310:  72 74 78 74 3A 20 63 61 6C 6C 20 73 74 72 69 6E    rtxt: call strin
015320:  67 3A 20 6A 70 20 63 72 6C 66 0D 0A 2E 63 72 63    g: jp crlf...crc
015330:  65 72 72 09 6C 64 20 68 6C 2C 63 72 63 74 78 74    err.ld hl,crctxt
015340:  3A 20 63 61 6C 6C 20 73 74 72 69 6E 67 3A 20 6A    : call string: j
015350:  70 20 63 72 6C 66 0D 0A 2E 64 73 63 65 72 72 09    p crlf...dscerr.
015360:  6C 64 20 68 6C 2C 64 73 63 74 78 74 3A 20 63 61    ld hl,dsctxt: ca
015370:  6C 6C 20 73 74 72 69 6E 67 3A 20 6A 70 20 63 72    ll string: jp cr
015380:  6C 66 0D 0A 2E 63 68 72 65 72 72 09 6C 64 20 68    lf...chrerr.ld h
015390:  6C 2C 63 68 72 74 78 74 3A 20 63 61 6C 6C 20 73    l,chrtxt: call s
0153A0:  74 72 69 6E 67 3A 20 6A 70 20 63 72 6C 66 0D 0A    tring: jp crlf..
0153B0:  2E 75 6E 6B 65 72 72 09 6C 64 20 68 6C 2C 75 6E    .unkerr.ld hl,un
0153C0:  6B 74 78 74 3A 20 63 61 6C 6C 20 73 74 72 69 6E    ktxt: call strin
0153D0:  67 3A 20 6A 70 20 63 72 6C 66 0D 0A 2E 6B 65 79    g: jp crlf...key
0153E0:  65 72 72 09 6C 64 20 68 6C 2C 6B 65 79 74 78 74    err.ld hl,keytxt
0153F0:  3A 20 63 61 6C 6C 20 73 74 72 69 6E 67 3A 20 6A    : call string: j
015400:  70 20 63 72 6C 66 0D 0A 0D 0A 2E 70 61 72 74 78    p crlf.....partx
015410:  74 09 64 62 20 22 49 6C 6C 65 67 61 6C 20 70 61    t.db "Illegal pa
015420:  72 61 6D 65 74 65 72 20 63 6F 75 6E 74 22 2C 30    rameter count",0
015430:  0D 0A 2E 65 72 72 74 78 74 09 64 62 20 22 46 69    ...errtxt.db "Fi
015440:  6C 65 20 65 72 72 6F 72 22 2C 30 0D 0A 2E 65 73    le error",0...es
015450:  63 74 78 74 09 64 62 20 22 45 73 63 61 70 65 20    ctxt.db "Escape 
015460:  70 72 65 73 73 65 64 22 2C 30 0D 0A 2E 6F 76 72    pressed",0...ovr
015470:  74 78 74 09 64 62 20 22 43 61 73 73 65 74 74 65    txt.db "Cassette
015480:  20 6F 76 65 72 72 75 6E 22 2C 30 0D 0A 2E 63 72     overrun",0...cr
015490:  63 74 78 74 09 64 62 20 22 52 65 61 64 20 65 72    ctxt.db "Read er
0154A0:  72 6F 72 20 62 20 28 43 52 43 20 65 72 72 6F 72    ror b (CRC error
0154B0:  29 22 2C 30 0D 0A 2E 64 73 63 74 78 74 09 64 62    )",0...dsctxt.db
0154C0:  20 22 44 69 73 63 20 65 72 72 6F 72 22 2C 30 0D     "Disc error",0.
0154D0:  0A 2E 63 68 72 74 78 74 09 64 62 20 22 43 68 61    ..chrtxt.db "Cha
0154E0:  72 61 63 74 65 72 20 6E 6F 74 20 65 64 69 74 61    racter not edita
0154F0:  62 6C 65 22 2C 30 0D 0A 2E 75 6E 6B 74 78 74 09    ble",0...unktxt.
015500:  2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D    ----------------
015510:  2D 2D 2D 2D 2D 2D 2D 2B 0D 0A 0D 0A 72 6F 6D 09    -------+....rom.
015520:  65 71 75 20 30 0D 0A 0D 0A 09 6E 6F 6C 69 73 74    equ 0.....nolist
015530:  09 09 3B 52 4F 4D 20 73 68 6F 75 6C 64 20 62 65    ..;ROM should be
015540:  20 31 20 69 66 20 61 20 52 4F 4D 20 69 6D 61 67     1 if a ROM imag
015550:  65 20 69 73 20 74 6F 20 62 65 20 77 72 69 74 74    e is to be writt
015560:  65 6E 0D 0A 69 66 20 72 6F 6D 0D 0A 09 6F 72 67    en..if rom...org
015570:  20 26 43 30 30 30 0D 0A 09 77 72 69 74 65 20 22     &C000...write "
015580:  73 64 6F 73 2D 72 6F 6D 2E 62 69 6E 22 0D 0A 0D    sdos-rom.bin"...
015590:  0A 09 64 62 20 31 09 09 3B 42 61 63 6B 67 72 6F    ..db 1..;Backgro
0155A0:  75 6E 64 20 52 4F 4D 0D 0A 09 64 62 20 31 09 09    und ROM...db 1..
0155B0:  3B 4D 61 72 6B 20 6E 75 6D 62 65 72 0D 0A 09 64    ;Mark number...d
0155C0:  62 20 30 09 09 3B 56 65 72 73 69 6F 6E 20 6E 75    b 0..;Version nu
0155D0:  6D 62 65 72 0D 0A 09 64 62 20 30 09 09 3B 4D 6F    mber...db 0..;Mo
0155E0:  64 69 66 69 63 61 74 69 6F 6E 20 6C 65 76 65 6C    dification level
0155F0:  0D 0A 65 6C 73 65 09 0D 0A 09 6F 72 67 20 26 38    ..else....org &8
015600:  30 30 30 0D 0A 09 77 72 69 74 65 20 22 73 64 6F    000...write "sdo
015610:  73 2D 64 69 73 2E 62 69 6E 22 0D 0A 09 6C 64 20    s-dis.bin"...ld 
015620:  68 6C 2C 77 73 70 61 63 65 0D 0A 09 6C 64 20 62    hl,wspace...ld b
015630:  63 2C 63 6F 6D 74 61 62 0D 0A 09 63 61 6C 6C 20    c,comtab...call 
015640:  26 62 63 64 31 0D 0A 09 63 61 6C 6C 20 69 6E 69    &bcd1...call ini
015650:  74 65 6E 0D 0A 09 72 65 74 0D 0A 2E 77 73 70 61    ten...ret...wspa
015660:  63 65 09 64 73 20 34 0D 0A 65 6E 64 69 66 0D 0A    ce.ds 4..endif..
015670:  0D 0A 09 3B 3E 3E 3E 20 43 6F 6D 6D 61 6E 64 20    ...;>>> Command 
015680:  61 6E 64 20 6E 61 6D 65 20 74 61 62 6C 65 73 0D    and name tables.
015690:  0A 0D 0A 2E 63 6F 6D 74 61 62 09 64 77 20 6E 61    ....comtab.dw na
0156A0:  6D 74 61 62 09 3B 41 64 64 72 65 73 73 20 6F 66    mtab.;Address of
0156B0:  20 6E 61 6D 65 20 74 61 62 6C 65 0D 0A 09 69 66     name table...if
0156C0:  20 72 6F 6D 0D 0A 09 20 6A 70 20 49 4E 49 54 45     rom... jp INITE
0156D0:  4E 0D 0A 09 65 6E 64 69 66 0D 0A 09 6A 70 20 46    N...endif...jp F
0156E0:  4F 52 4D 41 54 0D 0A 09 6A 70 20 56 45 52 49 46    ORMAT...jp VERIF
0156F0:  59 0D 0A 09 6A 70 20 41 4D 53 44 4F 53 0D 0A 09    Y...jp AMSDOS...
015700:  54 72 61 63 6B 2D 49 6E 66 6F 0D 0A 00 00 00 00    Track-Info......
015710:  12 00 01 00 02 09 4E E5 12 00 C6 02 00 00 00 02    ......N.........
015720:  12 00 C2 02 00 00 00 02 12 00 C7 02 00 00 00 02    ................
015730:  12 00 C3 02 00 00 00 02 12 00 C8 02 00 00 00 02    ................
015740:  12 00 C4 02 00 00 00 02 12 00 C9 02 00 00 00 02    ................
015750:  12 00 C5 02 00 00 00 02 12 00 C1 02 00 00 00 02    ................
015760:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
015770:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
015780:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
015790:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
0157A0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
0157B0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
0157C0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
0157D0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
0157E0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
0157F0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
015800:  6B 09 70 75 73 68 20 61 66 09 09 3B 70 72 65 73    k.push af..;pres
015810:  65 72 76 65 20 74 72 61 63 6B 20 63 6F 75 6E 74    erve track count
015820:  65 72 0D 0A 09 6C 64 20 61 2C 62 0D 0A 09 63 61    er...ld a,b...ca
015830:  6C 6C 20 26 62 62 35 61 09 3B 70 72 69 6E 74 20    ll &bb5a.;print 
015840:  74 68 65 20 63 68 61 72 61 63 74 65 72 20 28 22    the character ("
015850:  2B 22 20 69 66 20 6F 6B 2C 20 22 3F 22 20 69 66    +" if ok, "?" if
015860:  20 65 72 72 6F 72 29 0D 0A 09 69 6E 63 20 64 09     error)...inc d.
015870:  09 3B 74 72 61 63 6B 20 3D 20 74 72 61 63 6B 2B    .;track = track+
015880:  31 0D 0A 09 6C 64 20 61 2C 64 09 09 3B 67 65 74    1...ld a,d..;get
015890:  20 74 68 65 20 74 72 61 63 6B 20 63 6F 75 6E 74     the track count
0158A0:  65 72 20 69 6E 74 6F 20 74 68 65 20 41 20 72 65    er into the A re
0158B0:  67 69 73 74 65 72 0D 0A 09 63 70 20 38 30 09 09    gister...cp 80..
0158C0:  3B 69 73 20 69 74 20 74 68 65 20 6C 61 73 74 20    ;is it the last 
0158D0:  74 72 61 63 6B 20 3F 0D 0A 09 6A 70 20 7A 2C 65    track ?...jp z,e
0158E0:  6E 64 09 3B 79 65 73 2C 20 74 68 65 6E 20 6A 75    nd.;yes, then ju
0158F0:  6D 70 20 74 6F 20 74 68 65 20 65 6E 64 20 72 6F    mp to the end ro
015900:  75 74 69 6E 65 0D 0A 09 6C 64 20 64 2C 61 09 09    utine...ld d,a..
015910:  3B 6F 74 68 65 72 77 69 73 65 20 70 6C 61 63 65    ;otherwise place
015920:  20 74 68 65 20 74 72 61 63 6B 20 6E 75 6D 62 65     the track numbe
015930:  72 20 69 6E 20 44 20 72 65 67 69 73 74 65 72 0D    r in D register.
015940:  0A 09 6C 64 20 63 2C 26 37 31 09 3B 61 6E 64 20    ..ld c,&71.;and 
015950:  70 6C 61 63 65 20 74 68 65 20 73 74 61 72 74 69    place the starti
015960:  6E 67 20 73 65 63 74 6F 72 20 6E 75 6D 62 65 72    ng sector number
015970:  20 69 6E 20 43 0D 0A 09 70 6F 70 20 61 66 09 09     in C...pop af..
015980:  3B 67 65 74 20 74 68 65 20 74 72 61 63 6B 20 63    ;get the track c
015990:  6F 75 6E 74 65 72 20 62 61 63 6B 20 61 67 61 69    ounter back agai
0159A0:  6E 0D 0A 09 64 65 63 20 61 09 09 3B 74 72 61 63    n...dec a..;trac
0159B0:  6B 3D 74 72 61 63 6B 2D 31 0D 0A 09 6A 70 20 77    k=track-1...jp w
0159C0:  72 7A 09 09 3B 61 6E 64 20 6A 75 6D 70 20 62 61    rz..;and jump ba
0159D0:  63 6B 20 74 6F 20 74 68 65 20 72 65 61 64 20 72    ck to the read r
0159E0:  6F 75 74 69 6E 65 0D 0A 0D 0A 2E 65 6E 64 09 70    outine.....end.p
0159F0:  6F 70 20 61 66 09 09 3B 62 61 6C 61 6E 63 65 20    op af..;balance 
015A00:  0D 0A 0D 0A 2E 74 72 6B 6C 6F 70 09 6C 64 20 62    .....trklop.ld b
015A10:  2C 31 30 09 09 3B 6E 75 6D 62 65 72 20 6F 66 20    ,10..;number of 
015A20:  73 65 63 74 6F 72 73 20 70 65 72 20 74 72 61 63    sectors per trac
015A30:  6B 0D 0A 2E 6C 64 6C 6F 70 09 6C 64 20 28 68 6C    k...ldlop.ld (hl
015A40:  29 2C 64 09 3B 61 6E 64 20 70 6C 61 63 65 20 74    ),d.;and place t
015A50:  68 65 20 63 75 72 72 65 6E 74 20 74 72 61 63 6B    he current track
015A60:  20 6E 75 6D 62 65 72 20 69 6E 20 28 48 4C 29 20     number in (HL) 
015A70:  28 62 75 66 66 65 72 29 0D 0A 09 69 6E 63 20 68    (buffer)...inc h
015A80:  6C 09 09 3B 61 6E 64 20 74 68 65 20 6E 65 78 74    l..;and the next
015A90:  20 33 20 69 6E 73 74 72 75 63 74 69 6F 6E 73 20     3 instructions 
015AA0:  69 6E 63 72 65 6D 65 6E 74 20 74 6F 20 6E 65 78    increment to nex
015AB0:  74 20 74 72 61 63 6B 20 65 6E 74 72 79 0D 0A 09    t track entry...
015AC0:  69 6E 63 20 68 6C 0D 0A 09 69 6E 63 20 68 6C 0D    inc hl...inc hl.
015AD0:  0A 09 69 6E 63 20 68 6C 0D 0A 09 64 6A 6E 7A 20    ..inc hl...djnz 
015AE0:  6C 64 6C 6F 70 09 3B 61 6E 64 20 72 65 70 65 61    ldlop.;and repea
015AF0:  74 20 66 6F 72 20 61 6C 6C 20 31 30 20 73 65 63    t for all 10 sec
015B00:  74 6F 72 73 0D 0A 0D 0A 09 6C 64 20 68 6C 2C 26    tors.....ld hl,&
015B10:  41 46 30 30 09 3B 61 64 64 72 65 73 73 20 6F 66    AF00.;address of
015B20:  20 49 44 20 68 65 61 64 65 72 20 62 75 66 66 65     ID header buffe
015B30:  72 0D 0A 0D 0A 09 72 73 74 20 33 09 09 3B 66 61    r.....rst 3..;fa
015B40:  72 20 63 61 6C 6C 20 74 6F 20 64 69 73 6B 20 52    r call to disk R
015B50:  4F 4D 20 74 6F 20 66 6F 72 6D 61 74 20 74 68 65    OM to format the
015B60:  20 74 72 61 63 6B 0D 0A 09 64 77 20 66 74 72 61     track...dw ftra
015B70:  63 6B 09 3B 77 6F 72 64 20 61 64 64 72 65 73 73    ck.;word address
015B80:  20 6F 66 20 74 68 65 20 66 6F 72 6D 61 74 20 74     of the format t
015B90:  72 61 63 6B 20 72 6F 75 74 69 6E 65 0D 0A 0D 0A    rack routine....
015BA0:  09 6A 70 20 6E 63 2C 65 72 72 6F 72 0D 0A 09 69    .jp nc,error...i
015BB0:  6E 63 20 64 09 09 3B 74 72 61 63 6B 3D 74 72 61    nc d..;track=tra
015BC0:  63 6B 2B 31 0D 0A 09 70 75 73 68 20 61 66 09 09    ck+1...push af..
015BD0:  3B 70 72 65 73 65 72 76 65 20 41 46 0D 0A 09 6C    ;preserve AF...l
015BE0:  64 20 61 2C 22 2B 22 09 3B 70 6C 61 63 65 20 74    d a,"+".;place t
015BF0:  68 65 20 46 4F 52 4D 41 54 20 54 52 41 43 4B 20    he FORMAT TRACK 
015C00:  70 75 73 68 65 64 20 76 61 72 69 61 62 6C 65 73    pushed variables
015C10:  20 0D 0A 09 70 6F 70 20 68 6C 09 09 3B 67 65 74     ...pop hl..;get
015C20:  20 74 68 65 20 72 65 74 72 79 20 61 6E 64 20 65     the retry and e
015C30:  72 72 6F 72 20 63 6F 75 6E 74 20 62 61 63 6B 20    rror count back 
015C40:  61 67 61 69 6E 0D 0A 09 6C 64 20 61 2C 68 09 09    again...ld a,h..
015C50:  3B 67 65 74 20 74 68 65 20 72 65 74 72 79 20 63    ;get the retry c
015C60:  6F 75 6E 74 20 62 61 63 6B 20 66 72 6F 6D 20 48    ount back from H
015C70:  20 72 65 67 69 73 74 65 72 0D 0A 09 6C 64 20 28     register...ld (
015C80:  26 42 45 37 38 29 2C 61 09 3B 61 6E 64 20 72 65    &BE78),a.;and re
015C90:  73 65 74 20 62 61 63 6B 20 74 6F 20 6E 6F 72 6D    set back to norm
015CA0:  61 6C 0D 0A 09 6C 64 20 61 2C 6C 09 09 3B 67 65    al...ld a,l..;ge
015CB0:  74 20 74 68 65 20 65 72 72 6F 72 20 6D 65 73 73    t the error mess
015CC0:  61 67 65 73 20 63 6F 75 6E 74 20 62 61 63 6B 20    ages count back 
015CD0:  61 67 61 69 6E 0D 0A 09 6C 64 20 28 26 42 45 36    again...ld (&BE6
015CE0:  36 29 2C 61 09 3B 61 6E 64 20 72 65 73 65 74 20    6),a.;and reset 
015CF0:  62 61 63 6B 20 74 6F 20 6E 6F 72 6D 61 6C 0D 0A    back to normal..
015D00:  09 72 65 74 09 09 3B 61 6E 64 20 72 65 74 75 72    .ret..;and retur
015D10:  6E 0D 0A 0D 0A 09 3B 3E 3E 3E 20 41 4D 53 44 4F    n.....;>>> AMSDO
015D20:  53 20 63 6F 6D 6D 61 6E 64 0D 0A 0D 0A 2E 61 6D    S command.....am
015D30:  73 64 6F 73 09 6C 64 20 68 6C 2C 28 26 42 45 37    sdos.ld hl,(&BE7
015D40:  44 29 0D 0A 09 6C 64 20 64 65 2C 26 31 64 30 2B    D)...ld de,&1d0+
015D50:  32 34 0D 0A 09 61 64 64 20 68 6C 2C 64 65 09 3B    24...add hl,de.;
015D60:  48 4C 20 63 6F 6E 74 61 69 6E 73 20 58 50 42 20    HL contains XPB 
015D70:  61 64 64 72 65 73 73 20 2B 32 34 20 66 6F 72 20    address +24 for 
015D80:  64 72 69 76 65 20 42 0D 0A 09 78 6F 72 20 61 09    drive B...xor a.
015D90:  09 3B 41 20 3D 20 66 72 65 65 7A 65 20 66 6C 61    .;A = freeze fla
015DA0:  67 20 28 30 20 3D 20 61 75 74 6F 20 64 65 74 65    g (0 = auto dete
015DB0:  63 74 20 66 6F 72 6D 61 74 29 0D 0A 09 6C 64 20    ct format)...ld 
015DC0:  28 68 6C 29 2C 61 09 3B 61 6E 64 20 70 6C 61 63    (hl),a.;and plac
015DD0:  65 20 69 6E 20 66 72 65 65 7A 65 20 66 6C 61 67    e in freeze flag
015DE0:  20 70 6F 73 69 74 69 6F 6E 20 69 6E 20 42 20 58     position in B X
015DF0:  50 42 0D 0A 09 72 65 74 09 09 3B 72 65 74 75 72    PB...ret..;retur
015E00:  6D 61 72 6B 65 72 20 69 6E 20 41 0D 0A 09 63 61    marker in A...ca
015E10:  6C 6C 20 26 62 62 35 61 09 3B 61 6E 64 20 70 72    ll &bb5a.;and pr
015E20:  69 6E 74 20 69 74 20 61 74 20 63 75 72 72 65 6E    int it at curren
015E30:  74 20 63 75 72 73 6F 72 20 70 6F 73 69 74 69 6F    t cursor positio
015E40:  6E 0D 0A 09 70 6F 70 20 61 66 09 09 3B 67 65 74    n...pop af..;get
015E50:  20 41 46 20 62 61 63 6B 20 61 67 61 69 6E 0D 0A     AF back again..
015E60:  09 6C 64 20 61 2C 64 09 09 3B 67 65 74 20 74 68    .ld a,d..;get th
015E70:  65 20 74 72 61 63 6B 20 63 6F 75 6E 74 20 62 61    e track count ba
015E80:  63 6B 20 69 6E 74 6F 20 41 20 61 67 61 69 6E 0D    ck into A again.
015E90:  0A 09 63 70 20 38 30 09 09 3B 69 73 20 69 74 20    ..cp 80..;is it 
015EA0:  74 68 65 20 6C 61 73 74 20 74 72 61 63 6B 20 74    the last track t
015EB0:  6F 20 62 65 20 66 6F 72 6D 61 74 74 65 64 0D 0A    o be formatted..
015EC0:  09 6A 70 20 6E 7A 2C 74 72 6B 6C 6F 70 09 3B 61    .jp nz,trklop.;a
015ED0:  6E 64 20 72 65 70 65 61 74 20 72 6F 75 6E 64 20    nd repeat round 
015EE0:  6C 6F 6F 70 20 69 66 20 69 74 20 69 73 0D 0A 09    loop if it is...
015EF0:  72 65 74 09 09 3B 72 65 74 75 72 6E 20 66 72 6F    ret..;return fro
015F00:  6D 20 72 6F 75 74 69 6E 65 0D 0A 0D 0A 09 3B 3E    m routine.....;>
015F10:  3E 3E 20 53 56 45 52 49 46 59 20 63 6F 6D 6D 61    >> SVERIFY comma
015F20:  6E 64 20 3C 52 6F 62 3E 0D 0A 0D 0A 2E 76 65 72    nd <Rob>.....ver
015F30:  69 66 79 20 6C 64 20 61 2C 28 26 62 65 37 38 29    ify ld a,(&be78)
015F40:  09 3B 67 65 74 20 74 68 65 20 63 75 72 72 65 6E    .;get the curren
015F50:  74 20 65 72 72 6F 72 20 6D 65 73 73 61 67 65 20    t error message 
015F60:  66 6C 61 67 20 66 72 6F 6D 20 52 41 4D 0D 0A 09    flag from RAM...
015F70:  6C 64 20 68 2C 61 09 09 3B 61 6E 64 20 70 6C 61    ld h,a..;and pla
015F80:  63 65 20 69 6E 20 48 0D 0A 09 6C 64 20 61 2C 28    ce in H...ld a,(
015F90:  26 62 65 36 36 29 09 3B 67 65 74 20 74 68 65 20    &be66).;get the 
015FA0:  63 75 72 72 65 6E 74 20 52 45 54 52 59 20 63 6F    current RETRY co
015FB0:  75 6E 74 20 66 72 6F 6D 20 52 41 4D 0D 0A 09 6C    unt from RAM...l
015FC0:  64 20 6C 2C 61 09 09 3B 61 6E 64 20 70 6C 61 63    d l,a..;and plac
015FD0:  65 20 69 6E 20 4C 0D 0A 09 70 75 73 68 20 68 6C    e in L...push hl
015FE0:  09 09 3B 70 72 65 73 65 72 76 65 20 52 45 54 52    ..;preserve RETR
015FF0:  59 20 61 6E 64 20 45 52 52 4F 52 20 64 61 74 61    Y and ERROR data
016000:  6E 20 74 6F 20 42 41 53 49 43 0D 0A 0D 0A 09 3B    n to BASIC.....;
016010:  3E 3E 3E 20 43 4F 50 59 41 42 2F 43 4F 50 59 42    >>> COPYAB/COPYB
016020:  41 20 63 6F 6D 6D 61 6E 64 73 20 3C 6D 65 3E 0D    A commands <me>.
016030:  0A 0D 0A 2E 63 6F 70 79 61 62 20 6F 72 20 61 0D    ....copyab or a.
016040:  0A 09 63 61 6C 6C 20 7A 2C 6E 6F 6E 61 6D 09 3B    ..call z,nonam.;
016050:  49 66 20 6E 6F 20 70 61 72 61 6D 65 74 65 72 2C    If no parameter,
016060:  20 67 65 74 20 6F 6E 65 0D 0A 09 63 70 20 31 0D     get one...cp 1.
016070:  0A 09 72 65 74 20 6E 7A 09 09 3B 52 65 74 75 72    ..ret nz..;Retur
016080:  6E 20 69 66 20 73 74 69 6C 6C 20 6E 6F 74 20 6F    n if still not o
016090:  6E 65 20 70 61 72 61 6D 65 74 65 72 21 0D 0A 09    ne parameter!...
0160A0:  63 61 6C 6C 20 69 66 61 63 65 09 3B 50 75 74 20    call iface.;Put 
0160B0:  73 74 72 69 6E 67 20 69 6E 20 72 69 67 68 74 20    string in right 
0160C0:  70 6C 61 63 65 0D 0A 09 6C 64 20 28 68 6C 29 2C    place...ld (hl),
0160D0:  22 42 22 09 3B 42 20 69 73 20 64 65 73 74 69 6E    "B".;B is destin
0160E0:  61 74 69 6F 6E 20 64 72 69 76 65 0D 0A 09 6A 72    ation drive...jr
0160F0:  20 63 6F 70 79 0D 0A 0D 0A 2E 63 6F 70 79 62 61     copy.....copyba
016100:  20 6F 72 20 61 0D 0A 09 63 61 6C 6C 20 7A 2C 6E     or a...call z,n
016110:  6F 6E 61 6D 0D 0A 09 63 70 20 31 0D 0A 09 72 65    onam...cp 1...re
016120:  74 20 6E 7A 0D 0A 09 63 61 6C 6C 20 69 66 61 63    t nz...call ifac
016130:  65 0D 0A 09 6C 64 20 28 68 6C 29 2C 22 41 22 0D    e...ld (hl),"A".
016140:  0A 0D 0A 2E 63 6F 70 79 09 69 6E 63 20 68 6C 0D    ....copy.inc hl.
016150:  0A 09 6C 64 20 28 68 6C 29 2C 22 3A 22 09 3B 63    ..ld (hl),":".;c
016160:  6F 6C 6F 6E 20 66 6F 72 20 64 72 69 76 65 20 73    olon for drive s
016170:  70 65 63 69 66 69 65 72 0D 0A 09 64 65 63 20 68    pecifier...dec h
016180:  6C 09 09 3B 74 6F 20 73 74 61 72 74 20 6F 66 20    l..;to start of 
016190:  73 74 72 69 6E 67 0D 0A 0D 0A 09 63 61 6C 6C 20    string.....call 
0161A0:  66 64 62 75 66 66 09 3B 66 69 6E 64 20 32 6B 20    fdbuff.;find 2k 
0161B0:  62 75 66 66 65 72 20 61 64 64 72 65 73 73 0D 0A    buffer address..
0161C0:  09 6C 64 20 28 26 41 46 32 30 29 2C 64 65 09 3B    .ld (&AF20),de.;
0161D0:  73 74 6F 72 65 20 69 74 0D 0A 09 70 75 73 68 20    store it...push 
0161E0:  62 63 3A 20 70 75 73 68 20 68 6C 0D 0A 09 63 61    bc: push hl...ca
0161F0:  6C 6C 20 26 42 43 38 43 09 3B 6F 70 65 6E 20 6F    ll &BC8C.;open o
016200:  0D 0A 0D 0A 09 6C 64 20 61 2C 31 09 09 3B 61 6E    .....ld a,1..;an
016210:  64 20 73 65 74 20 72 65 74 72 79 73 20 74 6F 20    d set retrys to 
016220:  4F 6E 65 0D 0A 09 6C 64 20 28 26 62 65 36 36 29    One...ld (&be66)
016230:  2C 61 0D 0A 09 78 6F 72 20 61 09 09 3B 41 3D 30    ,a...xor a..;A=0
016240:  0D 0A 09 64 65 63 20 61 09 09 3B 41 3D 26 46 46    ...dec a..;A=&FF
016250:  20 28 63 61 72 72 79 20 74 72 75 65 21 29 0D 0A     (carry true!)..
016260:  09 6C 64 20 28 26 62 65 37 38 29 2C 61 09 3B 61    .ld (&be78),a.;a
016270:  6E 64 20 73 65 74 20 74 68 65 20 65 72 72 6F 72    nd set the error
016280:  20 6D 65 73 73 73 61 67 65 73 20 6F 66 66 0D 0A     messsages off..
016290:  0D 0A 09 6C 64 20 68 6C 2C 28 26 62 65 37 64 29    ...ld hl,(&be7d)
0162A0:  09 3B 67 65 74 20 74 68 65 20 64 72 69 76 65 20    .;get the drive 
0162B0:  42 20 73 65 6C 65 63 74 20 61 64 64 72 65 73 73    B select address
0162C0:  20 66 72 6F 6D 20 52 41 4D 0D 0A 09 6C 64 20 64     from RAM...ld d
0162D0:  65 2C 35 36 30 09 3B 73 65 63 74 6F 72 20 62 75    e,560.;sector bu
0162E0:  66 66 65 72 20 3D 20 6F 66 66 73 65 74 20 35 36    ffer = offset 56
0162F0:  30 20 69 6E 20 52 41 4D 0D 0A 09 61 64 64 20 68    0 in RAM...add h
016300:  6C 2C 64 65 09 3B 61 6E 64 20 6E 6F 77 20 48 4C    l,de.;and now HL
016310:  20 70 6F 69 6E 74 73 20 74 6F 20 73 65 63 74 6F     points to secto
016320:  72 20 62 75 66 66 65 72 0D 0A 09 6C 64 20 63 2C    r buffer...ld c,
016330:  26 37 31 09 3B 73 74 61 72 74 69 6E 67 20 73 65    &71.;starting se
016340:  63 74 6F 72 20 6E 75 6D 62 65 72 0D 0A 09 6C 64    ctor number...ld
016350:  20 64 2C 30 09 09 3B 73 74 61 72 74 20 74 72 61     d,0..;start tra
016360:  63 6B 20 74 6F 20 73 74 61 72 74 20 77 72 69 74    ck to start writ
016370:  69 6E 67 20 74 6F 0D 0A 09 6C 64 20 65 2C 31 09    ing to...ld e,1.
016380:  09 3B 64 72 69 76 65 20 75 6E 69 74 20 2D 20 31    .;drive unit - 1
016390:  3D 42 3A 0D 0A 0D 0A 2E 77 72 7A 09 6C 64 20 61    =B:.....wrz.ld a
0163A0:  2C 39 09 09 3B 6E 75 6D 62 65 72 20 6F 66 20 73    ,9..;number of s
0163B0:  65 63 74 6F 72 73 20 70 65 72 20 74 72 61 63 6B    ectors per track
0163C0:  20 28 53 50 54 29 20 6D 69 6E 75 73 20 31 0D 0A     (SPT) minus 1..
0163D0:  09 6C 64 20 62 2C 22 2B 22 09 3B 63 68 61 72 61    .ld b,"+".;chara
0163E0:  63 74 65 72 20 74 6F 20 70 72 69 6E 74 0D 0A 0D    cter to print...
0163F0:  0A 2E 77 72 69 74 65 09 70 75 73 68 20 61 66 09    ..write.push af.
016400:  75 74 70 75 74 20 66 69 6C 65 0D 0A 09 70 6F 70    utput file...pop
016410:  20 68 6C 3A 20 70 6F 70 20 62 63 0D 0A 09 6A 70     hl: pop bc...jp
016420:  20 6E 63 2C 65 72 72 6F 72 0D 0A 0D 0A 09 72 73     nc,error.....rs
016430:  74 20 34 3A 20 6C 64 20 63 2C 61 0D 0A 09 6C 64    t 4: ld c,a...ld
016440:  20 61 2C 31 33 31 3A 20 73 75 62 20 63 09 3B 63     a,131: sub c.;c
016450:  6F 6E 76 65 72 74 20 64 65 73 74 69 6E 61 74 69    onvert destinati
016460:  6F 6E 20 69 6E 74 6F 20 73 6F 75 72 63 65 20 64    on into source d
016470:  72 69 76 65 0D 0A 09 6C 64 20 28 68 6C 29 2C 61    rive...ld (hl),a
016480:  0D 0A 0D 0A 09 70 75 73 68 20 62 63 0D 0A 09 6C    .....push bc...l
016490:  64 20 64 65 2C 28 26 41 46 32 30 29 09 3B 67 65    d de,(&AF20).;ge
0164A0:  74 20 6C 61 73 74 20 62 75 66 66 65 72 20 61 64    t last buffer ad
0164B0:  64 72 65 73 73 0D 0A 09 6C 64 20 61 2C 64 3A 20    dress...ld a,d: 
0164C0:  63 70 20 26 43 30 09 3B 69 66 20 69 74 20 77 61    cp &C0.;if it wa
0164D0:  73 20 69 6E 20 73 63 72 65 65 6E 20 6D 65 6D 6F    s in screen memo
0164E0:  72 79 2C 0D 0A 09 6A 72 20 7A 2C 69 6E 73 63 72    ry,...jr z,inscr
0164F0:  09 3B 20 74 68 65 20 6E 65 77 20 6F 6E 65 20 6D    .; the new one m
016500:  75 73 74 20 62 65 20 74 6F 6F 21 0D 0A 09 6C 64    ust be too!...ld
016510:  20 62 63 2C 32 30 34 38 0D 0A 09 65 78 20 68 6C     bc,2048...ex hl
016520:  2C 64 65 0D 0A 09 61 64 64 20 68 6C 2C 62 63 09    ,de...add hl,bc.
016530:  3B 65 6C 73 65 20 66 69 6E 64 20 65 6E 64 20 6F    ;else find end o
016540:  66 20 6C 61 73 74 20 62 75 66 66 65 72 0D 0A 09    f last buffer...
016550:  65 78 20 64 65 2C 68 6C 0D 0A 09 63 61 6C 6C 20    ex de,hl...call 
016560:  66 62 75 66 66 70 09 3B 61 6E 64 20 73 65 61 72    fbuffp.;and sear
016570:  63 68 20 73 74 61 72 74 69 6E 67 20 66 72 6F 6D    ch starting from
016580:  20 74 68 65 72 65 0D 0A 09 6A 72 20 73 74 62 75     there...jr stbu
016590:  66 66 0D 0A 2E 69 6E 73 63 72 09 6C 64 20 64 65    ff...inscr.ld de
0165A0:  2C 26 43 38 30 30 09 3B 73 65 63 6F 6E 64 20 62    ,&C800.;second b
0165B0:  75 66 66 65 72 20 69 6E 20 73 63 72 65 65 6E 20    uffer in screen 
0165C0:  6D 65 6D 6F 72 79 0D 0A 2E 73 74 62 75 66 66 09    memory...stbuff.
0165D0:  6C 64 20 28 26 41 46 32 32 29 2C 64 65 09 3B 73    ld (&AF22),de.;s
0165E0:  74 6F 72 65 20 74 68 65 20 62 75 66 66 65 72 0D    tore the buffer.
0165F0:  0A 09 70 6F 70 20 62 63 0D 0A 09 63 61 6C 6C 20    ..pop bc...call 
016600:  09 3B 70 72 65 73 65 72 76 65 20 73 65 63 74 6F    .;preserve secto
016610:  72 20 63 6F 75 6E 74 0D 0A 09 72 73 74 20 33 09    r count...rst 3.
016620:  09 3B 46 41 52 5F 43 41 4C 4C 20 74 6F 20 64 69    .;FAR_CALL to di
016630:  73 6B 20 52 4F 4D 20 77 69 74 68 20 66 6F 6C 6C    sk ROM with foll
016640:  6F 77 69 6E 67 20 57 4F 52 44 0D 0A 09 64 77 20    owing WORD...dw 
016650:  72 65 61 64 09 09 3B 57 4F 52 44 20 61 64 64 72    read..;WORD addr
016660:  65 73 73 20 6F 66 20 72 6F 75 74 69 6E 65 20 61    ess of routine a
016670:  6E 64 20 52 4F 4D 20 73 65 6C 65 63 74 20 61 64    nd ROM select ad
016680:  64 72 65 73 73 0D 0A 09 6A 72 20 63 2C 72 63 6F    dress...jr c,rco
016690:  6E 74 09 3B 72 65 61 64 20 6F 6B 3F 0D 0A 09 6C    nt.;read ok?...l
0166A0:  64 20 62 2C 22 3F 22 09 3B 6E 6F 2C 20 73 6F 20    d b,"?".;no, so 
0166B0:  63 68 61 72 61 63 74 65 72 20 74 6F 20 70 72 69    character to pri
0166C0:  6E 74 20 3D 20 22 3F 22 0D 0A 2E 72 63 6F 6E 74    nt = "?"...rcont
0166D0:  09 70 6F 70 20 61 66 09 09 3B 67 65 74 20 74 68    .pop af..;get th
0166E0:  65 20 73 65 63 74 6F 72 20 63 6F 75 6E 74 20 62    e sector count b
0166F0:  61 63 6B 20 61 67 61 69 6E 0D 0A 09 63 70 20 30    ack again...cp 0
016700:  09 09 3B 69 73 20 69 74 20 7A 65 72 6F 20 28 6E    ..;is it zero (n
016710:  69 6E 65 20 73 65 63 74 6F 72 73 20 77 72 69 74    ine sectors writ
016720:  74 65 6E 20 3F 29 0D 0A 09 6A 72 20 7A 2C 69 6E    ten ?)...jr z,in
016730:  63 74 72 6B 09 3B 79 65 73 2C 20 74 68 65 6E 20    ctrk.;yes, then 
016740:  6A 75 6D 70 20 74 6F 20 49 4E 43 72 65 6D 65 6E    jump to INCremen
016750:  74 20 54 52 61 63 4B 20 72 6F 75 74 69 6E 65 0D    t TRacK routine.
016760:  0A 09 64 65 63 20 61 09 09 3B 64 65 63 72 65 6D    ..dec a..;decrem
016770:  65 6E 74 20 74 72 61 63 6B 20 63 6F 75 6E 74 20    ent track count 
016780:  28 74 72 61 63 6B 3D 74 72 61 63 6B 2D 31 29 0D    (track=track-1).
016790:  0A 09 69 6E 63 20 63 09 09 3B 69 6E 63 72 65 6D    ..inc c..;increm
0167A0:  65 6E 74 20 73 65 63 74 6F 72 20 63 6F 75 6E 74    ent sector count
0167B0:  65 72 20 28 73 65 63 74 6F 72 3D 73 65 63 74 6F    er (sector=secto
0167C0:  72 2B 31 29 0D 0A 09 6A 72 20 77 72 69 74 65 09    r+1)...jr write.
0167D0:  3B 61 6E 64 20 6A 75 6D 70 20 62 61 63 6B 20 74    ;and jump back t
0167E0:  6F 20 73 65 63 74 6F 72 20 77 72 69 74 65 20 72    o sector write r
0167F0:  6F 75 74 69 6E 65 0D 0A 0D 0A 2E 69 6E 63 74 72    outine.....inctr
016800:  69 65 73 20 69 6E 20 64 72 69 76 65 20 42 20 58    ies in drive B X
016810:  50 42 0D 0A 09 6C 64 69 72 09 09 3B 63 72 65 61    PB...ldir..;crea
016820:  74 65 20 6E 65 77 20 58 50 42 20 66 6F 72 20 64    te new XPB for d
016830:  72 69 76 65 20 42 0D 0A 09 6F 72 20 61 09 09 3B    rive B...or a..;
016840:  61 6E 64 20 74 65 73 74 20 74 6F 20 73 65 65 20    and test to see 
016850:  69 66 20 74 68 65 72 65 20 61 72 65 20 61 6E 79    if there are any
016860:  20 70 61 72 61 6D 65 74 65 72 73 0D 0A 09 72 65     parameters...re
016870:  74 20 6E 7A 09 09 3B 72 65 74 75 72 6E 20 69 66    t nz..;return if
016880:  20 6E 6F 20 70 61 72 61 6D 65 74 65 72 73 20 28     no parameters (
016890:  6A 75 73 74 20 73 65 74 20 75 70 20 66 6F 72 6D    just set up form
0168A0:  61 74 29 0D 0A 09 0D 0A 2E 66 6F 72 09 6C 64 20    at)......for.ld 
0168B0:  68 6C 2C 73 65 63 62 75 66 09 3B 61 64 64 72 65    hl,secbuf.;addre
0168C0:  73 73 20 6F 66 20 73 65 63 74 6F 72 20 49 44 20    ss of sector ID 
0168D0:  68 65 61 64 65 72 20 66 6F 72 20 66 6F 72 6D 61    header for forma
0168E0:  74 74 69 6E 67 0D 0A 09 6C 64 20 64 65 2C 26 61    tting...ld de,&a
0168F0:  66 30 30 09 3B 61 64 64 72 65 73 73 20 6F 66 20    f00.;address of 
016900:  6E 69 63 65 20 73 61 66 65 20 70 6C 61 63 65 20    nice safe place 
016910:  69 6E 20 52 41 4D 20 74 6F 20 70 6C 61 63 65 20    in RAM to place 
016920:  69 74 0D 0A 09 6C 64 20 62 63 2C 35 30 09 3B 6E    it...ld bc,50.;n
016930:  75 6D 62 65 72 20 6F 66 20 65 6E 74 72 69 65 73    umber of entries
016940:  20 69 6E 20 74 68 65 20 68 65 61 64 65 72 20 62     in the header b
016950:  75 66 66 65 72 0D 0A 09 6C 64 69 72 09 09 3B 61    uffer...ldir..;a
016960:  6E 64 20 6D 6F 76 65 20 74 68 65 20 68 65 61 64    nd move the head
016970:  65 72 20 62 75 66 66 65 72 20 69 6E 74 6F 20 52    er buffer into R
016980:  41 4D 0D 0A 0D 0A 09 6C 64 20 68 6C 2C 26 61 66    AM.....ld hl,&af
016990:  30 30 09 3B 61 64 64 72 65 73 73 20 6F 66 20 49    00.;address of I
0169A0:  44 20 68 65 61 64 65 72 20 62 75 66 66 65 72 0D    D header buffer.
0169B0:  0A 09 6C 64 20 65 2C 31 09 09 3B 44 72 69 76 65    ..ld e,1..;Drive
0169C0:  20 73 65 6C 65 63 74 20 61 64 64 72 65 73 73 20     select address 
0169D0:  28 31 3D 62 29 0D 0A 09 6C 64 20 64 2C 30 09 09    (1=b)...ld d,0..
0169E0:  3B 73 74 61 72 74 20 74 72 61 63 6B 20 74 6F 20    ;start track to 
0169F0:  73 74 61 72 74 20 66 6F 72 6D 61 74 74 69 6E 67    start formatting
016A00:  54 72 61 63 6B 2D 49 6E 66 6F 0D 0A 00 00 00 00    Track-Info......
016A10:  13 00 01 00 02 09 4E E5 13 00 C9 02 00 00 00 02    ......N.........
016A20:  13 00 C5 02 00 00 00 02 13 00 C1 02 00 00 00 02    ................
016A30:  13 00 C6 02 00 00 00 02 13 00 C2 02 00 00 00 02    ................
016A40:  13 00 C7 02 00 00 00 02 13 00 C3 02 00 00 00 02    ................
016A50:  13 00 C8 02 00 00 00 02 13 00 C4 02 00 00 00 02    ................
016A60:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
016A70:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
016A80:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
016A90:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
016AA0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
016AB0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
016AC0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
016AD0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
016AE0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
016AF0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
016B00:  65 20 66 6F 75 6E 64 20 69 6E 20 73 63 72 65 65    e found in scree
016B10:  6E 0D 0A 09 6C 64 20 28 26 41 46 31 32 29 2C 64    n...ld (&AF12),d
016B20:  65 09 09 3B 73 74 6F 72 65 20 62 75 66 66 65 72    e..;store buffer
016B30:  20 61 64 64 72 65 73 73 0D 0A 0D 0A 09 6C 64 20     address.....ld 
016B40:  61 2C 63 09 09 09 3B 72 65 73 74 6F 72 65 20 41    a,c...;restore A
016B50:  0D 0A 09 6C 64 20 68 6C 2C 28 26 42 45 37 44 29    ...ld hl,(&BE7D)
016B60:  09 09 3B 67 65 74 20 61 64 64 72 65 73 73 20 6F    ..;get address o
016B70:  66 20 63 75 72 72 65 6E 74 20 64 72 69 76 65 20    f current drive 
016B80:  73 74 6F 72 65 0D 0A 09 70 75 73 68 20 61 66 0D    store...push af.
016B90:  0A 09 6C 64 20 61 2C 28 68 6C 29 09 09 3B 67 65    ..ld a,(hl)..;ge
016BA0:  74 20 74 68 65 20 63 75 72 72 65 6E 74 20 64 72    t the current dr
016BB0:  69 76 65 0D 0A 09 6C 64 20 28 26 41 46 31 30 29    ive...ld (&AF10)
016BC0:  2C 61 09 09 3B 61 6E 64 20 73 74 6F 72 65 20 65    ,a..;and store e
016BD0:  6C 73 65 77 68 65 72 65 0D 0A 09 70 6F 70 20 61    lsewhere...pop a
016BE0:  66 0D 0A 09 6F 72 20 61 0D 0A 09 6A 72 20 7A 2C    f...or a...jr z,
016BF0:  64 6F 63 61 74 0D 0A 0D 0A 09 6C 64 20 61 2C 28    docat.....ld a,(
016C00:  69 78 29 09 09 3B 67 65 74 20 70 61 72 61 6D 65    ix)..;get parame
016C10:  74 65 72 0D 0A 09 61 6E 64 20 31 09 09 09 3B 6D    ter...and 1...;m
016C20:  61 73 6B 20 73 6F 20 69 74 20 63 61 6E 20 6F 6E    ask so it can on
016C30:  6C 79 20 62 65 20 30 20 6F 72 20 31 0D 0A 09 6C    ly be 0 or 1...l
016C40:  64 20 28 68 6C 29 2C 61 0D 0A 0D 0A 2E 64 6F 63    d (hl),a.....doc
016C50:  61 74 09 70 75 73 68 20 68 6C 0D 0A 09 63 61 6C    at.push hl...cal
016C60:  6C 20 26 42 43 39 42 09 09 3B 64 6F 20 74 68 65    l &BC9B..;do the
016C70:  20 63 61 74 61 6C 6F 67 75 65 2E 2E 2E 0D 0A 09     catalogue......
016C80:  70 6F 70 20 68 6C 0D 0A 09 6C 64 20 61 2C 28 26    pop hl...ld a,(&
016C90:  41 46 31 30 29 0D 0A 09 6C 64 20 28 68 6C 29 2C    AF10)...ld (hl),
016CA0:  61 09 09 3B 72 65 73 74 6F 72 65 20 6F 6C 64 20    a..;restore old 
016CB0:  64 72 69 76 65 0D 0A 09 6C 64 20 68 6C 2C 28 26    drive...ld hl,(&
016CC0:  41 46 31 32 29 09 09 3B 67 65 74 20 62 75 66 66    AF12)..;get buff
016CD0:  65 72 20 61 64 64 72 65 73 73 0D 0A 09 63 61 6C    er address...cal
016CE0:  6C 20 62 6B 62 75 66 66 09 09 3B 61 6E 64 20 62    l bkbuff..;and b
016CF0:  6C 61 6E 6B 20 74 68 65 20 62 75 66 66 65 72 21    lank the buffer!
016D00:  70 6F 69 6E 74 73 20 74 6F 20 61 64 64 72 65 73    points to addres
016D10:  73 20 6F 66 20 66 69 6C 65 6E 61 6D 65 0D 0A 09    s of filename...
016D20:  6C 64 20 64 65 2C 26 43 30 30 30 09 3B 41 64 64    ld de,&C000.;Add
016D30:  72 65 73 73 20 74 6F 20 6F 70 65 6E 20 32 6B 20    ress to open 2k 
016D40:  62 75 66 66 65 72 0D 0A 2E 6C 66 69 6C 65 09 63    buffer...lfile.c
016D50:  61 6C 6C 20 26 42 43 37 37 09 3B 6F 70 65 6E 20    all &BC77.;open 
016D60:  66 69 6C 65 20 66 6F 72 20 69 6E 70 75 74 0D 0A    file for input..
016D70:  09 6A 70 20 6E 63 2C 65 72 72 6F 72 09 3B 61 6E    .jp nc,error.;an
016D80:  64 20 69 66 20 61 6E 20 65 72 72 6F 72 20 6F 63    d if an error oc
016D90:  63 75 72 73 2C 20 74 68 65 6E 20 74 65 6C 6C 20    curs, then tell 
016DA0:  75 73 65 72 0D 0A 09 6F 72 20 61 09 09 3B 42 41    user...or a..;BA
016DB0:  53 49 43 3F 0D 0A 09 6A 72 20 7A 2C 62 61 73 69    SIC?...jr z,basi
016DC0:  63 0D 0A 09 63 70 20 31 09 09 3B 70 72 6F 74 65    c...cp 1..;prote
016DD0:  63 74 65 64 20 42 41 53 49 43 3F 0D 0A 09 6A 72    cted BASIC?...jr
016DE0:  20 7A 2C 62 61 73 69 63 0D 0A 09 70 75 73 68 20     z,basic...push 
016DF0:  68 6C 09 09 3B 70 72 65 73 65 72 76 65 20 61 6C    hl..;preserve al
016E00:  6C 20 72 65 67 69 73 74 65 72 73 20 63 6F 72 72    l registers corr
016E10:  75 70 74 65 64 20 62 79 20 4C 44 49 52 20 0D 0A    upted by LDIR ..
016E20:  09 70 75 73 68 20 64 65 0D 0A 09 70 75 73 68 20    .push de...push 
016E30:  62 63 0D 0A 09 6C 64 20 68 6C 2C 72 65 73 74 09    bc...ld hl,rest.
016E40:  3B 48 4C 20 70 6F 69 6E 74 73 20 74 6F 20 72 6F    ;HL points to ro
016E50:  75 74 69 6E 65 20 74 6F 20 72 65 61 64 20 74 68    utine to read th
016E60:  65 20 66 69 6C 65 20 69 6E 74 6F 20 73 74 6F 72    e file into stor
016E70:  65 0D 0A 09 6C 64 20 64 65 2C 26 61 66 30 30 09    e...ld de,&af00.
016E80:  3B 44 45 20 70 6F 69 6E 74 73 20 74 6F 20 70 6C    ;DE points to pl
016E90:  61 63 65 20 74 6F 20 70 75 74 20 72 6F 75 74 69    ace to put routi
016EA0:  6E 65 0D 0A 09 6C 64 20 62 63 2C 26 33 30 09 3B    ne...ld bc,&30.;
016EB0:  6E 75 6D 62 65 72 20 6F 66 20 62 79 74 65 73 20    number of bytes 
016EC0:  74 6F 20 6D 6F 76 65 0D 0A 09 6C 64 69 72 09 09    to move...ldir..
016ED0:  3B 61 6E 64 20 72 65 6C 6F 63 61 74 65 20 74 68    ;and relocate th
016EE0:  65 20 6C 6F 61 64 65 72 0D 0A 09 6A 70 20 26 61    e loader...jp &a
016EF0:  66 30 30 09 3B 74 6F 20 65 78 65 63 75 74 65 20    f00.;to execute 
016F00:  26 42 43 37 37 09 3B 6F 70 65 6E 20 74 68 65 20    &BC77.;open the 
016F10:  69 6E 70 75 74 20 66 69 6C 65 0D 0A 09 6A 70 20    input file...jp 
016F20:  6E 63 2C 65 72 72 6F 72 0D 0A 09 63 70 20 32 32    nc,error...cp 22
016F30:  3A 20 6A 72 20 7A 2C 6E 6F 68 65 61 64 0D 0A 0D    : jr z,nohead...
016F40:  0A 09 6C 64 20 62 2C 31 32 38 0D 0A 2E 6F 68 65    ..ld b,128...ohe
016F50:  61 64 09 6C 64 20 61 2C 28 68 6C 29 0D 0A 09 63    ad.ld a,(hl)...c
016F60:  61 6C 6C 20 26 42 43 39 35 09 3B 77 72 69 74 65    all &BC95.;write
016F70:  20 6F 75 74 20 31 32 38 2D 62 79 74 65 20 68 65     out 128-byte he
016F80:  61 64 65 72 0D 0A 09 69 6E 63 20 68 6C 0D 0A 09    ader...inc hl...
016F90:  64 6A 6E 7A 20 6F 68 65 61 64 0D 0A 0D 0A 2E 6E    djnz ohead.....n
016FA0:  6F 68 65 61 64 20 63 61 6C 6C 20 26 42 43 38 30    ohead call &BC80
016FB0:  09 3B 69 6E 70 75 74 20 63 68 61 72 61 63 74 65    .;input characte
016FC0:  72 2E 2E 2E 0D 0A 09 6A 72 20 63 2C 6F 6B 63 68    r......jr c,okch
016FD0:  61 72 09 3B 72 65 61 64 20 6F 6B 0D 0A 09 6A 70    ar.;read ok...jp
016FE0:  20 7A 2C 65 6F 66 09 3B 63 6C 6F 73 65 20 66 69     z,eof.;close fi
016FF0:  6C 65 20 69 66 20 65 72 72 6F 72 0D 0A 09 63 70    le if error...cp
017000:  20 26 31 41 0D 0A 09 6A 72 20 6E 7A 2C 65 6F 66     &1A...jr nz,eof
017010:  09 3B 65 6E 64 20 6F 66 20 66 69 6C 65 20 69 66    .;end of file if
017020:  20 6E 6F 74 20 73 6F 66 74 20 45 4F 46 20 28 43     not soft EOF (C
017030:  48 52 24 28 32 36 29 29 0D 0A 0D 0A 2E 6F 6B 63    HR$(26)).....okc
017040:  68 61 72 20 63 61 6C 6C 20 26 42 43 39 35 09 3B    har call &BC95.;
017050:  2E 2E 2E 6F 75 74 70 75 74 20 63 68 61 72 61 63    ...output charac
017060:  74 65 72 0D 0A 09 6A 72 20 6E 6F 68 65 61 64 0D    ter...jr nohead.
017070:  0A 0D 0A 2E 65 6F 66 09 63 61 6C 6C 20 26 42 43    ....eof.call &BC
017080:  37 41 09 3B 63 6C 6F 73 65 20 69 6E 70 75 74 20    7A.;close input 
017090:  66 69 6C 65 0D 0A 09 63 61 6C 6C 20 26 42 43 38    file...call &BC8
0170A0:  46 09 3B 63 6C 6F 73 65 20 6F 75 74 70 75 74 20    F.;close output 
0170B0:  66 69 6C 65 0D 0A 09 6C 64 20 68 6C 2C 28 26 41    file...ld hl,(&A
0170C0:  46 32 30 29 0D 0A 09 63 61 6C 6C 20 62 6B 62 75    F20)...call bkbu
0170D0:  66 66 09 3B 62 6C 61 6E 6B 20 6F 75 74 70 75 74    ff.;blank output
0170E0:  20 62 75 66 66 65 72 20 61 67 61 69 6E 0D 0A 09     buffer again...
0170F0:  6C 64 20 68 6C 2C 28 26 41 46 32 32 29 0D 0A 09    ld hl,(&AF22)...
017100:  74 68 65 20 6C 6F 61 64 65 72 0D 0A 2E 72 65 73    the loader...res
017110:  74 09 70 6F 70 20 62 63 09 09 3B 67 65 74 20 61    t.pop bc..;get a
017120:  6C 6C 20 74 68 65 20 70 72 65 73 65 72 76 65 64    ll the preserved
017130:  20 72 65 67 69 73 74 65 72 73 20 62 61 63 6B 0D     registers back.
017140:  0A 09 70 6F 70 20 64 65 0D 0A 09 70 6F 70 20 68    ..pop de...pop h
017150:  6C 0D 0A 09 65 78 20 64 65 2C 68 6C 09 3B 67 65    l...ex de,hl.;ge
017160:  74 20 73 74 61 72 74 20 61 64 64 72 65 73 73 20    t start address 
017170:  66 72 6F 6D 20 68 65 61 64 65 72 20 69 6E 74 6F    from header into
017180:  20 48 4C 0D 0A 09 63 61 6C 6C 20 26 62 63 38 33     HL...call &bc83
017190:  09 3B 61 6E 64 20 72 65 61 64 20 69 6E 20 74 68    .;and read in th
0171A0:  65 20 66 69 6C 65 20 69 6E 74 6F 20 73 74 6F 72    e file into stor
0171B0:  65 0D 0A 09 70 75 73 68 20 68 6C 09 09 3B 70 72    e...push hl..;pr
0171C0:  65 73 65 72 76 65 20 65 78 65 63 75 74 65 20 61    eserve execute a
0171D0:  64 64 72 65 73 73 0D 0A 09 63 61 6C 6C 20 26 62    ddress...call &b
0171E0:  63 37 61 09 3B 61 6E 64 20 63 6C 6F 73 65 20 69    c7a.;and close i
0171F0:  6E 70 75 74 20 66 69 6C 65 0D 0A 09 70 6F 70 20    nput file...pop 
017200:  68 6C 09 09 3B 67 65 74 20 74 68 65 20 65 78 65    hl..;get the exe
017210:  63 75 74 65 20 61 64 64 72 65 73 73 20 62 61 63    cute address bac
017220:  6B 20 61 67 61 69 6E 0D 0A 09 6A 70 20 28 68 6C    k again...jp (hl
017230:  29 09 09 3B 61 6E 64 20 65 78 65 63 75 74 65 20    )..;and execute 
017240:  74 68 65 20 66 69 6C 65 0D 0A 0D 0A 2E 62 61 73    the file.....bas
017250:  69 63 09 6C 64 20 68 6C 2C 62 74 78 74 09 3B 61    ic.ld hl,btxt.;a
017260:  64 64 72 65 73 73 20 6F 66 20 42 41 53 49 43 20    ddress of BASIC 
017270:  70 72 6F 67 72 61 6D 20 74 65 78 74 0D 0A 09 63    program text...c
017280:  61 6C 6C 20 73 74 72 69 6E 67 09 3B 63 61 6C 6C    all string.;call
017290:  20 73 74 72 69 6E 67 20 70 72 69 6E 74 20 72 6F     string print ro
0172A0:  75 74 69 6E 65 0D 0A 09 72 65 74 09 09 3B 72 65    utine...ret..;re
0172B0:  74 75 72 6E 20 74 6F 20 42 41 53 49 43 0D 0A 0D    turn to BASIC...
0172C0:  0A 2E 62 61 73 6C 6F 64 09 6F 72 20 61 0D 0A 09    ..baslod.or a...
0172D0:  63 61 6C 6C 20 7A 2C 6E 6F 6E 61 6D 0D 0A 09 63    call z,nonam...c
0172E0:  70 20 31 0D 0A 09 72 65 74 20 6E 7A 0D 0A 0D 0A    p 1...ret nz....
0172F0:  2E 67 65 74 62 61 73 09 6C 64 20 6C 2C 28 69 78    .getbas.ld l,(ix
017300:  63 61 6C 6C 20 62 6B 62 75 66 66 09 3B 61 6E 64    call bkbuff.;and
017310:  20 69 6E 70 75 74 20 62 75 66 66 65 72 0D 0A 09     input buffer...
017320:  72 65 74 0D 0A 0D 0A 2E 65 72 72 6F 72 09 62 69    ret.....error.bi
017330:  74 20 37 2C 61 0D 0A 09 6A 72 20 6E 7A 2C 65 72    t 7,a...jr nz,er
017340:  63 6F 6E 74 0D 0A 09 6C 64 20 68 6C 2C 65 74 65    cont...ld hl,ete
017350:  78 74 0D 0A 09 63 61 6C 6C 20 73 74 72 69 6E 67    xt...call string
017360:  0D 0A 2E 65 72 63 6F 6E 74 09 63 61 6C 6C 20 26    ...ercont.call &
017370:  42 43 39 32 09 3B 61 62 61 6E 64 6F 6E 20 6F 75    BC92.;abandon ou
017380:  74 70 75 74 20 66 69 6C 65 0D 0A 09 63 61 6C 6C    tput file...call
017390:  20 26 42 43 37 44 09 3B 61 62 61 6E 64 6F 6E 20     &BC7D.;abandon 
0173A0:  69 6E 70 75 74 20 66 69 6C 65 0D 0A 09 72 65 74    input file...ret
0173B0:  0D 0A 0D 0A 2E 69 66 61 63 65 09 6C 64 20 6C 2C    .....iface.ld l,
0173C0:  28 69 78 29 3A 20 6C 64 20 68 2C 28 69 78 2B 31    (ix): ld h,(ix+1
0173D0:  29 0D 0A 09 6C 64 20 61 2C 28 68 6C 29 3A 20 6C    )...ld a,(hl): l
0173E0:  64 20 63 2C 61 3A 20 6C 64 20 62 2C 30 0D 0A 09    d c,a: ld b,0...
0173F0:  69 6E 63 20 68 6C 3A 20 6C 64 20 65 2C 28 68 6C    inc hl: ld e,(hl
017400:  29 3A 20 69 6E 63 20 68 6C 3A 20 6C 64 20 64 2C    ): inc hl: ld d,
017410:  28 68 6C 29 0D 0A 09 65 78 20 64 65 2C 68 6C 0D    (hl)...ex de,hl.
017420:  0A 09 6C 64 20 64 65 2C 26 41 46 32 36 0D 0A 09    ..ld de,&AF26...
017430:  70 75 73 68 20 62 63 0D 0A 09 6C 64 69 72 0D 0A    push bc...ldir..
017440:  09 70 6F 70 20 62 63 0D 0A 09 6C 64 20 62 2C 63    .pop bc...ld b,c
017450:  0D 0A 09 69 6E 63 20 62 0D 0A 09 69 6E 63 20 62    ...inc b...inc b
017460:  0D 0A 09 6C 64 20 68 6C 2C 26 41 46 32 34 0D 0A    ...ld hl,&AF24..
017470:  09 72 65 74 0D 0A 0D 0A 09 3B 3E 3E 3E 20 42 52    .ret.....;>>> BR
017480:  55 4E 20 63 6F 6D 6D 61 6E 64 20 3C 52 6F 62 3E    UN command <Rob>
017490:  0D 0A 0D 0A 2E 62 72 75 6E 09 6F 72 20 61 09 09    .....brun.or a..
0174A0:  3B 73 65 74 20 7A 20 66 6C 61 67 20 61 63 63 6F    ;set z flag acco
0174B0:  72 64 69 6E 67 20 74 6F 20 73 74 61 74 65 20 6F    rding to state o
0174C0:  66 20 41 0D 0A 09 63 61 6C 6C 20 7A 2C 6E 6F 6E    f A...call z,non
0174D0:  61 6D 09 3B 69 66 20 6E 6F 20 66 69 6C 65 6E 61    am.;if no filena
0174E0:  6D 65 2C 20 67 6F 20 61 6E 64 20 67 65 74 20 6F    me, go and get o
0174F0:  6E 65 21 0D 0A 09 63 70 20 31 09 09 3B 69 73 20    ne!...cp 1..;is 
017500:  2B 26 30 30 29 0D 0A 09 6C 64 20 68 2C 28 69 78    +&00)...ld h,(ix
017510:  2B 26 30 31 29 0D 0A 09 6C 64 20 61 2C 28 68 6C    +&01)...ld a,(hl
017520:  29 0D 0A 09 6C 64 20 62 2C 61 0D 0A 09 69 6E 63    )...ld b,a...inc
017530:  20 68 6C 0D 0A 09 6C 64 20 65 2C 28 68 6C 29 0D     hl...ld e,(hl).
017540:  0A 09 69 6E 63 20 68 6C 0D 0A 09 6C 64 20 64 2C    ..inc hl...ld d,
017550:  28 68 6C 29 0D 0A 09 65 78 20 68 6C 2C 64 65 0D    (hl)...ex hl,de.
017560:  0A 09 6C 64 20 64 65 2C 26 63 30 30 30 09 09 3B    ..ld de,&c000..;
017570:  41 64 64 72 65 73 73 20 74 6F 20 6F 70 65 6E 20    Address to open 
017580:  32 6B 20 62 75 66 66 65 72 0D 0A 2E 72 62 61 73    2k buffer...rbas
017590:  69 63 09 63 61 6C 6C 20 26 62 63 37 37 09 09 3B    ic.call &bc77..;
0175A0:  6F 70 65 6E 20 66 69 6C 65 20 66 6F 72 20 69 6E    open file for in
0175B0:  70 75 74 0D 0A 09 6A 70 20 6E 63 2C 65 72 72 6F    put...jp nc,erro
0175C0:  72 0D 0A 09 63 70 20 32 0D 0A 09 6A 70 20 6E 63    r...cp 2...jp nc
0175D0:  2C 65 72 72 6F 72 0D 0A 09 65 78 20 64 65 2C 68    ,error...ex de,h
0175E0:  6C 0D 0A 09 63 61 6C 6C 20 26 62 63 38 33 0D 0A    l...call &bc83..
0175F0:  09 63 61 6C 6C 20 26 62 63 37 61 0D 0A 09 72 65    .call &bc7a...re
017600:  74 0D 0A 0D 0A 09 3B 3E 3E 3E 20 53 4C 4F 41 44    t.....;>>> SLOAD
017610:  20 63 6F 6D 6D 61 6E 64 20 3C 52 6F 62 3E 0D 0A     command <Rob>..
017620:  0D 0A 2E 73 6C 6F 61 64 09 6F 72 20 61 0D 0A 09    ...sload.or a...
017630:  63 61 6C 6C 20 7A 2C 6E 6F 6E 61 6D 0D 0A 09 63    call z,nonam...c
017640:  70 20 31 0D 0A 09 72 65 74 20 6E 7A 0D 0A 0D 0A    p 1...ret nz....
017650:  09 6C 64 20 68 6C 2C 73 74 61 72 74 31 0D 0A 09    .ld hl,start1...
017660:  63 61 6C 6C 20 73 74 72 69 6E 67 0D 0A 09 63 61    call string...ca
017670:  6C 6C 20 68 65 78 69 6E 70 0D 0A 09 72 65 74 20    ll hexinp...ret 
017680:  7A 09 09 09 3B 45 53 43 20 70 72 65 73 73 65 64    z...;ESC pressed
017690:  3F 0D 0A 09 6C 64 20 63 2C 30 0D 0A 09 6A 72 20    ?...ld c,0...jr 
0176A0:  63 2C 6E 6F 73 65 74 63 0D 0A 09 69 6E 63 20 63    c,nosetc...inc c
0176B0:  09 09 09 3B 43 20 69 73 20 31 20 69 66 20 69 6E    ...;C is 1 if in
0176C0:  70 75 74 2C 20 30 20 69 66 20 6E 6F 20 69 6E 70    put, 0 if no inp
0176D0:  75 74 0D 0A 2E 6E 6F 73 65 74 63 09 70 75 73 68    ut...nosetc.push
0176E0:  20 68 6C 0D 0A 09 6C 64 20 6C 2C 28 69 78 2B 30     hl...ld l,(ix+0
0176F0:  29 0D 0A 09 6C 64 20 68 2C 28 69 78 2B 31 29 0D    )...ld h,(ix+1).
017700:  74 68 65 72 65 20 61 20 66 69 6C 65 6E 61 6D 65    there a filename
017710:  20 6E 6F 77 3F 0D 0A 09 72 65 74 20 6E 7A 09 09     now?...ret nz..
017720:  3B 72 65 74 75 72 6E 20 69 66 20 6E 6F 74 0D 0A    ;return if not..
017730:  09 70 75 73 68 20 69 78 09 09 3B 6F 74 68 65 72    .push ix..;other
017740:  77 69 73 65 20 70 72 65 73 65 72 76 65 20 70 61    wise preserve pa
017750:  72 61 6D 65 74 65 72 20 62 6C 6F 63 6B 20 61 64    rameter block ad
017760:  64 72 65 73 73 0D 0A 0D 0A 09 6C 64 20 68 6C 2C    dress.....ld hl,
017770:  28 26 62 65 37 64 29 09 3B 61 6E 64 20 67 65 74    (&be7d).;and get
017780:  20 74 68 65 20 64 72 69 76 65 20 73 65 6C 65 63     the drive selec
017790:  74 20 61 64 64 72 65 73 73 20 66 72 6F 6D 20 52    t address from R
0177A0:  41 4D 0D 0A 09 6C 64 20 28 68 6C 29 2C 31 09 3B    AM...ld (hl),1.;
0177B0:  61 6E 64 20 73 65 6C 65 63 74 20 64 72 69 76 65    and select drive
0177C0:  20 6F 6E 65 20 28 42 29 0D 0A 0D 0A 2E 70 61 74     one (B).....pat
0177D0:  63 68 09 6C 64 20 61 2C 26 63 39 09 3B 41 20 63    ch.ld a,&c9.;A c
0177E0:  6F 6E 74 61 69 6E 73 20 5A 38 30 20 6F 70 2D 63    ontains Z80 op-c
0177F0:  6F 64 65 20 66 6F 72 20 52 45 54 75 72 6E 0D 0A    ode for RETurn..
017800:  09 6C 64 20 28 26 42 43 43 42 29 2C 61 09 3B 73    .ld (&BCCB),a.;s
017810:  74 6F 70 20 52 4F 4D 73 20 62 65 69 6E 67 20 69    top ROMs being i
017820:  6E 69 74 69 61 6C 69 7A 65 64 20 28 4B 4C 20 52    nitialized (KL R
017830:  4F 4D 20 57 41 4C 4B 2F 49 4E 49 54 29 0D 0A 09    OM WALK/INIT)...
017840:  6C 64 20 28 26 42 43 43 45 29 2C 61 0D 0A 09 6C    ld (&BCCE),a...l
017850:  64 20 28 26 42 43 43 38 29 2C 61 09 3B 73 74 6F    d (&BCC8),a.;sto
017860:  70 20 73 79 73 74 65 6D 20 72 65 73 65 74 20 28    p system reset (
017870:  4B 4C 20 43 48 4F 4B 45 20 4F 46 46 29 0D 0A 09    KL CHOKE OFF)...
017880:  6C 64 20 28 26 42 44 33 37 29 2C 61 09 3B 73 74    ld (&BD37),a.;st
017890:  6F 70 20 66 69 72 6D 77 61 72 65 20 72 65 73 65    op firmware rese
0178A0:  74 0D 0A 09 61 64 64 20 26 32 30 09 09 3B 41 20    t...add &20..;A 
0178B0:  63 6F 6E 74 61 69 6E 73 20 6F 70 2D 63 6F 64 65    contains op-code
0178C0:  20 66 6F 72 20 4A 50 20 28 48 4C 29 0D 0A 09 6C     for JP (HL)...l
0178D0:  64 20 28 26 42 44 31 36 29 2C 61 09 3B 70 61 74    d (&BD16),a.;pat
0178E0:  63 68 20 4D 43 20 53 54 41 52 54 20 50 52 4F 47    ch MC START PROG
0178F0:  52 41 4D 0D 0A 09 6C 64 20 28 26 42 44 31 33 29    RAM...ld (&BD13)
017900:  0A 09 6C 64 20 61 2C 28 68 6C 29 0D 0A 09 6C 64    ..ld a,(hl)...ld
017910:  20 62 2C 61 0D 0A 09 69 6E 63 20 68 6C 0D 0A 09     b,a...inc hl...
017920:  6C 64 20 65 2C 28 68 6C 29 0D 0A 09 69 6E 63 20    ld e,(hl)...inc 
017930:  68 6C 0D 0A 09 6C 64 20 64 2C 28 68 6C 29 0D 0A    hl...ld d,(hl)..
017940:  09 65 78 20 68 6C 2C 64 65 0D 0A 09 6C 64 20 64    .ex hl,de...ld d
017950:  65 2C 26 63 30 30 30 09 09 3B 41 64 64 72 65 73    e,&c000..;Addres
017960:  73 20 74 6F 20 6F 70 65 6E 20 32 6B 20 62 75 66    s to open 2k buf
017970:  66 65 72 0D 0A 09 70 75 73 68 20 62 63 0D 0A 09    fer...push bc...
017980:  63 61 6C 6C 20 26 62 63 37 37 09 09 3B 6F 70 65    call &bc77..;ope
017990:  6E 20 66 69 6C 65 20 66 6F 72 20 69 6E 70 75 74    n file for input
0179A0:  0D 0A 09 70 6F 70 20 62 63 0D 0A 09 70 6F 70 20    ...pop bc...pop 
0179B0:  68 6C 0D 0A 09 6A 70 20 6E 63 2C 65 72 72 6F 72    hl...jp nc,error
0179C0:  0D 0A 09 6C 64 20 61 2C 63 0D 0A 09 6F 72 20 61    ...ld a,c...or a
0179D0:  0D 0A 09 6A 72 20 6E 7A 2C 69 6E 64 72 63 74 09    ...jr nz,indrct.
0179E0:  09 3B 64 6F 6E 27 74 20 62 6F 74 68 65 72 20 67    .;don't bother g
0179F0:  65 74 74 69 6E 67 20 6C 6F 61 64 20 61 64 64 72    etting load addr
017A00:  65 73 73 20 69 66 20 73 75 70 70 6C 69 65 64 0D    ess if supplied.
017A10:  0A 09 65 78 20 64 65 2C 68 6C 0D 0A 2E 69 6E 64    ..ex de,hl...ind
017A20:  72 63 74 09 63 61 6C 6C 20 26 62 63 38 33 0D 0A    rct.call &bc83..
017A30:  09 63 61 6C 6C 20 26 62 63 37 61 0D 0A 09 6C 64    .call &bc7a...ld
017A40:  20 61 2C 31 30 3A 20 63 61 6C 6C 20 26 42 42 35     a,10: call &BB5
017A50:  41 0D 0A 09 6C 64 20 61 2C 31 33 3A 20 63 61 6C    A...ld a,13: cal
017A60:  6C 20 26 42 42 35 41 09 3B 43 52 2F 4C 46 0D 0A    l &BB5A.;CR/LF..
017A70:  09 72 65 74 0D 0A 0D 0A 09 3B 3E 3E 3E 20 43 41    .ret.....;>>> CA
017A80:  54 20 63 6F 6D 6D 61 6E 64 20 3C 6D 65 3E 0D 0A    T command <me>..
017A90:  0D 0A 2E 63 61 74 09 63 61 6C 6C 20 66 64 62 75    ...cat.call fdbu
017AA0:  66 66 09 09 3B 66 69 6E 64 20 61 20 32 6B 20 62    ff..;find a 2k b
017AB0:  75 66 66 65 72 0D 0A 09 6C 64 20 63 2C 61 09 09    uffer...ld c,a..
017AC0:  09 3B 70 72 65 73 65 72 76 65 20 41 0D 0A 09 6C    .;preserve A...l
017AD0:  64 20 61 2C 64 3A 20 63 70 20 26 43 30 0D 0A 09    d a,d: cp &C0...
017AE0:  6A 70 20 7A 2C 65 72 72 6F 72 09 09 3B 65 72 72    jp z,error..;err
017AF0:  6F 72 20 69 66 20 6F 6E 6C 79 20 63 61 6E 20 62    or if only can b
017B00:  2C 61 09 3B 70 61 74 63 68 20 4D 43 20 4C 4F 41    ,a.;patch MC LOA
017B10:  44 20 50 52 4F 47 52 41 4D 0D 0A 0D 0A 2E 67 65    D PROGRAM.....ge
017B20:  74 73 64 62 09 70 6F 70 20 69 78 09 09 3B 67 65    tsdb.pop ix..;ge
017B30:  74 20 74 68 65 20 70 61 72 61 6D 65 74 65 72 20    t the parameter 
017B40:  62 6C 6F 63 6B 20 61 64 64 72 65 73 73 20 66 72    block address fr
017B50:  6F 6D 20 73 74 61 63 6B 0D 0A 09 6C 64 20 6C 2C    om stack...ld l,
017B60:  28 69 78 2B 30 29 09 3B 61 6E 64 20 67 65 74 20    (ix+0).;and get 
017B70:  74 68 65 20 6C 6F 20 62 79 74 65 20 6F 66 20 74    the lo byte of t
017B80:  68 65 20 73 74 72 69 6E 67 20 64 65 73 63 72 69    he string descri
017B90:  70 74 6F 72 0D 0A 09 6C 64 20 68 2C 28 69 78 2B    ptor...ld h,(ix+
017BA0:  31 29 09 3B 61 6E 64 20 67 65 74 20 74 68 65 20    1).;and get the 
017BB0:  68 69 20 62 79 74 65 20 6F 66 20 74 68 65 20 73    hi byte of the s
017BC0:  74 72 69 6E 67 20 64 65 73 63 72 69 70 74 6F 72    tring descriptor
017BD0:  0D 0A 09 6C 64 20 61 2C 28 68 6C 29 09 3B 67 65    ...ld a,(hl).;ge
017BE0:  74 20 74 68 65 20 6C 65 6E 67 74 68 20 6F 66 20    t the length of 
017BF0:  74 68 65 20 73 74 72 69 6E 67 0D 0A 09 6C 64 20    the string...ld 
017C00:  62 2C 61 09 09 3B 61 6E 64 20 70 6C 61 63 65 20    b,a..;and place 
017C10:  69 74 20 69 6E 20 42 20 72 65 67 69 73 74 65 72    it in B register
017C20:  20 66 6F 72 20 43 41 53 5F 49 4E 5F 4F 50 45 4E     for CAS_IN_OPEN
017C30:  0D 0A 09 69 6E 63 20 68 6C 09 09 3B 48 4C 20 70    ...inc hl..;HL p
017C40:  6F 69 6E 74 73 20 74 6F 20 61 64 64 72 65 73 73    oints to address
017C50:  20 6F 66 20 46 49 4C 45 4E 41 4D 45 20 69 6E 20     of FILENAME in 
017C60:  52 41 4D 0D 0A 09 6C 64 20 65 2C 28 68 6C 29 09    RAM...ld e,(hl).
017C70:  3B 67 65 74 20 74 68 65 20 6C 6F 20 62 79 74 65    ;get the lo byte
017C80:  20 6F 66 20 74 68 65 20 46 49 4C 45 4E 41 4D 45     of the FILENAME
017C90:  20 61 64 64 72 65 73 73 0D 0A 09 69 6E 63 20 68     address...inc h
017CA0:  6C 09 09 3B 67 65 74 20 74 68 65 20 68 69 20 62    l..;get the hi b
017CB0:  79 74 65 20 6F 66 20 74 68 65 20 46 49 4C 45 4E    yte of the FILEN
017CC0:  41 4D 45 20 61 64 64 72 65 73 73 0D 0A 09 6C 64    AME address...ld
017CD0:  20 64 2C 28 68 6C 29 09 3B 61 6E 64 20 70 6C 61     d,(hl).;and pla
017CE0:  63 65 20 69 6E 20 44 20 72 65 67 69 73 74 65 72    ce in D register
017CF0:  0D 0A 09 65 78 20 68 6C 2C 64 65 09 3B 48 4C 20    ...ex hl,de.;HL 
017D00:  54 72 61 63 6B 2D 49 6E 66 6F 0D 0A 00 00 00 00    Track-Info......
017D10:  14 00 01 00 02 09 4E E5 14 00 C3 02 00 00 00 02    ......N.........
017D20:  14 00 C8 02 00 00 00 02 14 00 C4 02 00 00 00 02    ................
017D30:  14 00 C9 02 00 00 00 02 14 00 C5 02 00 00 00 02    ................
017D40:  14 00 C1 02 00 00 00 02 14 00 C6 02 00 00 00 02    ................
017D50:  14 00 C2 02 00 00 00 02 14 00 C7 02 00 00 00 02    ................
017D60:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
017D70:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
017D80:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
017D90:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
017DA0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
017DB0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
017DC0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
017DD0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
017DE0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
017DF0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
017E00:  2C 26 30 35 0D 0A 09 6C 64 20 28 69 78 2B 32 29    ,&05...ld (ix+2)
017E10:  2C 26 41 46 0D 0A 09 6C 64 20 68 6C 2C 66 74 65    ,&AF...ld hl,fte
017E20:  78 74 09 3B 22 45 6E 74 65 72 20 66 69 6C 65 6E    xt.;"Enter filen
017E30:  61 6D 65 22 0D 0A 09 63 61 6C 6C 20 73 74 72 69    ame"...call stri
017E40:  6E 67 0D 0A 09 6C 64 20 68 6C 2C 26 41 46 30 35    ng...ld hl,&AF05
017E50:  0D 0A 09 63 61 6C 6C 20 69 6E 70 75 74 66 09 3B    ...call inputf.;
017E60:  49 6E 70 75 74 20 66 69 6C 65 6E 61 6D 65 20 40    Input filename @
017E70:  20 26 41 46 30 35 0D 0A 09 6C 64 20 61 2C 26 41     &AF05...ld a,&A
017E80:  3A 20 63 61 6C 6C 20 26 42 42 35 41 0D 0A 09 6C    : call &BB5A...l
017E90:  64 20 61 2C 26 44 3A 20 63 61 6C 6C 20 26 42 42    d a,&D: call &BB
017EA0:  35 41 0D 0A 09 70 6F 70 20 68 6C 0D 0A 09 6C 64    5A...pop hl...ld
017EB0:  20 28 69 78 29 2C 62 09 3B 53 74 6F 72 65 20 73     (ix),b.;Store s
017EC0:  74 72 69 6E 67 20 6C 65 6E 67 74 68 0D 0A 09 64    tring length...d
017ED0:  65 63 20 69 78 3A 20 64 65 63 20 69 78 09 3B 49    ec ix: dec ix.;I
017EE0:  58 20 3D 20 70 61 72 61 6D 65 74 65 72 20 62 6C    X = parameter bl
017EF0:  6F 63 6B 20 28 26 41 46 30 30 29 0D 0A 09 6C 64    ock (&AF00)...ld
017F00:  20 61 2C 30 09 09 3B 4E 6F 20 70 61 72 61 6D 65     a,0..;No parame
017F10:  74 65 72 20 70 61 73 73 65 64 20 66 6F 72 20 62    ter passed for b
017F20:  65 6C 6F 77 20 63 6F 6E 64 69 74 69 6F 6E 73 20    elow conditions 
017F30:  28 45 53 43 2F 52 45 54 55 52 4E 29 0D 0A 09 72    (ESC/RETURN)...r
017F40:  65 74 20 7A 09 09 3B 52 65 74 75 72 6E 20 69 66    et z..;Return if
017F50:  20 45 53 43 20 70 72 65 73 73 65 64 0D 0A 09 6C     ESC pressed...l
017F60:  64 20 61 2C 62 09 09 3B 41 20 69 73 20 6C 65 6E    d a,b..;A is len
017F70:  67 74 68 20 6F 66 20 66 69 6C 65 6E 61 6D 65 0D    gth of filename.
017F80:  0A 09 6F 72 20 61 09 09 3B 69 73 20 69 74 20 7A    ..or a..;is it z
017F90:  65 72 6F 3F 0D 0A 09 72 65 74 20 7A 09 09 3B 72    ero?...ret z..;r
017FA0:  65 74 75 72 6E 20 69 66 20 73 6F 0D 0A 09 6C 64    eturn if so...ld
017FB0:  20 61 2C 31 09 09 3B 6F 74 68 65 72 77 69 73 65     a,1..;otherwise
017FC0:  20 2D 20 6F 6E 65 20 70 61 72 61 6D 65 74 65 72     - one parameter
017FD0:  0D 0A 09 72 65 74 09 09 3B 61 6E 64 20 72 65 74    ...ret..;and ret
017FE0:  75 72 6E 21 0D 0A 0D 0A 2E 74 62 74 68 65 78 09    urn!.....tbthex.
017FF0:  6C 64 20 61 2C 68 0D 0A 09 63 61 6C 6C 20 68 65    ld a,h...call he
018000:  09 63 70 20 31 33 3A 20 20 20 20 6A 72 20 7A 2C    .cp 13:    jr z,
018010:  65 78 68 69 6E 70 09 3B 52 45 54 55 52 4E 3F 0D    exhinp.;RETURN?.
018020:  0A 09 63 70 20 26 37 46 3A 20 20 20 6A 72 20 6E    ..cp &7F:   jr n
018030:  7A 2C 6E 6F 74 64 65 6C 09 3B 44 45 4C 3F 0D 0A    z,notdel.;DEL?..
018040:  0D 0A 09 6C 64 20 61 2C 62 3A 20 6F 72 20 61 0D    ...ld a,b: or a.
018050:  0A 09 6A 72 20 7A 2C 77 61 69 74 63 68 09 09 3B    ..jr z,waitch..;
018060:  64 6F 6E 27 74 20 64 65 6C 65 74 65 20 69 66 20    don't delete if 
018070:  6E 6F 20 69 6E 70 75 74 20 79 65 74 21 0D 0A 0D    no input yet!...
018080:  0A 09 64 65 63 20 68 6C 3A 20 64 65 63 20 62 09    ..dec hl: dec b.
018090:  09 3B 64 65 63 72 65 6D 65 6E 74 20 63 68 61 72    .;decrement char
0180A0:  20 63 6F 75 6E 74 20 61 6E 64 20 6C 6F 63 61 74     count and locat
0180B0:  69 6F 6E 0D 0A 09 6C 64 20 61 2C 38 3A 20 63 61    ion...ld a,8: ca
0180C0:  6C 6C 20 26 42 42 35 41 09 3B 62 61 63 6B 73 70    ll &BB5A.;backsp
0180D0:  61 63 65 2E 2E 2E 0D 0A 09 6C 64 20 61 2C 33 32    ace......ld a,32
0180E0:  3A 20 63 61 6C 6C 20 26 42 42 35 41 09 3B 53 50    : call &BB5A.;SP
0180F0:  41 43 45 20 6F 76 65 72 20 74 68 65 20 63 68 61    ACE over the cha
018100:  72 61 63 74 65 72 2E 2E 2E 0D 0A 09 6C 64 20 61    racter......ld a
018110:  2C 38 3A 20 63 61 6C 6C 20 26 42 42 35 41 09 3B    ,8: call &BB5A.;
018120:  61 6E 64 20 62 61 63 6B 73 70 61 63 65 20 61 67    and backspace ag
018130:  61 69 6E 0D 0A 09 6A 72 20 77 61 69 74 63 68 0D    ain...jr waitch.
018140:  0A 0D 0A 2E 6E 6F 74 64 65 6C 20 63 70 20 22 66    ....notdel cp "f
018150:  22 2B 31 3A 20 6A 72 20 6E 63 2C 77 61 69 74 63    "+1: jr nc,waitc
018160:  68 09 3B 67 65 74 20 61 6E 6F 74 68 65 72 20 63    h.;get another c
018170:  68 61 72 61 63 74 65 72 20 69 66 20 6F 76 65 72    haracter if over
018180:  20 22 66 22 0D 0A 09 63 70 20 22 61 22 3A 20 20     "f"...cp "a":  
018190:  6A 72 20 63 2C 6E 6F 6C 6F 77 09 3B 73 6B 69 70    jr c,nolow.;skip
0181A0:  20 74 68 69 73 20 6E 65 78 74 20 62 69 74 20 69     this next bit i
0181B0:  66 20 6E 6F 74 20 6C 6F 77 65 72 20 63 61 73 65    f not lower case
0181C0:  0D 0A 09 72 65 73 20 35 2C 61 09 09 09 3B 63 6F    ...res 5,a...;co
0181D0:  6E 76 65 72 74 20 74 6F 20 75 70 70 65 72 20 63    nvert to upper c
0181E0:  61 73 65 0D 0A 2E 6E 6F 6C 6F 77 09 63 70 20 22    ase...nolow.cp "
0181F0:  46 22 2B 31 3A 20 6A 72 20 6E 63 2C 77 61 69 74    F"+1: jr nc,wait
018200:  78 70 72 74 0D 0A 09 6C 64 20 61 2C 6C 0D 0A 09    xprt...ld a,l...
018210:  63 61 6C 6C 20 68 65 78 70 72 74 0D 0A 09 72 65    call hexprt...re
018220:  74 0D 0A 0D 0A 2E 68 65 78 70 72 74 20 6C 64 20    t.....hexprt ld 
018230:  62 2C 32 0D 0A 09 6C 64 20 63 2C 61 0D 0A 09 72    b,2...ld c,a...r
018240:  72 61 0D 0A 09 72 72 61 0D 0A 09 72 72 61 0D 0A    ra...rra...rra..
018250:  09 72 72 61 0D 0A 0D 0A 2E 68 65 78 6D 73 6B 20    .rra.....hexmsk 
018260:  61 6E 64 20 26 66 0D 0A 09 63 70 20 26 61 0D 0A    and &f...cp &a..
018270:  09 6A 72 20 6E 63 2C 68 65 78 67 72 74 0D 0A 09    .jr nc,hexgrt...
018280:  61 64 64 20 61 2C 26 33 30 0D 0A 09 63 61 6C 6C    add a,&30...call
018290:  20 26 62 62 35 61 0D 0A 09 6A 72 20 68 65 78 62     &bb5a...jr hexb
0182A0:  79 65 0D 0A 0D 0A 2E 68 65 78 67 72 74 20 61 64    ye.....hexgrt ad
0182B0:  64 20 61 2C 26 33 37 0D 0A 09 63 61 6C 6C 20 26    d a,&37...call &
0182C0:  62 62 35 61 0D 0A 0D 0A 2E 68 65 78 62 79 65 20    bb5a.....hexbye 
0182D0:  6C 64 20 61 2C 63 0D 0A 09 64 6A 6E 7A 20 68 65    ld a,c...djnz he
0182E0:  78 6D 73 6B 0D 0A 09 72 65 74 0D 0A 0D 0A 2E 68    xmsk...ret.....h
0182F0:  65 6C 70 09 6C 64 20 68 6C 2C 68 74 78 74 0D 0A    elp.ld hl,htxt..
018300:  09 63 61 6C 6C 20 73 74 72 69 6E 67 0D 0A 09 72    .call string...r
018310:  65 74 0D 0A 0D 0A 09 3B 3E 3E 3E 20 46 69 6E 64    et.....;>>> Find
018320:  20 32 6B 20 62 75 66 66 65 72 20 3C 6D 65 3E 0D     2k buffer <me>.
018330:  0A 0D 0A 2E 66 64 62 75 66 66 09 6C 64 20 64 65    ....fdbuff.ld de
018340:  2C 26 32 30 30 09 3B 66 69 6E 64 20 32 6B 20 62    ,&200.;find 2k b
018350:  75 66 66 65 72 0D 0A 2E 66 62 75 66 66 70 20 70    uffer...fbuffp p
018360:  75 73 68 20 62 63 3A 20 70 75 73 68 20 61 66 0D    ush bc: push af.
018370:  0A 09 6C 64 20 62 63 2C 30 09 09 3B 7A 65 72 6F    ..ld bc,0..;zero
018380:  20 63 6F 75 6E 74 20 74 6F 20 30 0D 0A 0D 0A 2E     count to 0.....
018390:  62 66 6C 6F 6F 70 09 6C 64 20 61 2C 28 64 65 29    bfloop.ld a,(de)
0183A0:  09 3B 67 65 74 20 62 79 74 65 2C 0D 0A 09 69 6E    .;get byte,...in
0183B0:  63 20 64 65 09 09 3B 61 6E 64 20 69 6E 63 72 65    c de..;and incre
0183C0:  61 73 65 20 70 6F 69 6E 74 65 72 0D 0A 09 6F 72    ase pointer...or
0183D0:  20 61 09 09 3B 69 73 20 74 68 65 20 62 79 74 65     a..;is the byte
0183E0:  20 30 3F 0D 0A 09 6A 72 20 7A 2C 69 73 7A 65 72     0?...jr z,iszer
0183F0:  6F 09 3B 69 66 20 73 6F 2C 20 67 6F 20 74 6F 20    o.;if so, go to 
018400:  63 68 09 3B 67 65 74 20 61 6E 6F 74 68 65 72 20    ch.;get another 
018410:  63 68 61 72 61 63 74 65 72 20 69 66 20 6F 76 65    character if ove
018420:  72 20 22 46 22 0D 0A 09 63 70 20 22 30 22 3A 20    r "F"...cp "0": 
018430:  20 20 6A 72 20 63 2C 77 61 69 74 63 68 09 3B 67      jr c,waitch.;g
018440:  65 74 20 61 6E 6F 74 68 65 72 20 63 68 61 72 61    et another chara
018450:  63 74 65 72 20 69 66 20 62 65 6C 6F 77 20 22 30    cter if below "0
018460:  22 0D 0A 09 63 70 20 22 41 22 3A 20 20 20 6A 72    "...cp "A":   jr
018470:  20 6E 63 2C 6F 6B 63 68 09 3B 6F 6B 20 69 66 20     nc,okch.;ok if 
018480:  22 41 22 20 6F 72 20 61 62 6F 76 65 0D 0A 09 63    "A" or above...c
018490:  70 20 22 39 22 2B 31 3A 20 6A 72 20 6E 63 2C 77    p "9"+1: jr nc,w
0184A0:  61 69 74 63 68 09 3B 67 65 74 20 61 6E 6F 74 68    aitch.;get anoth
0184B0:  65 72 20 63 68 61 72 61 63 74 65 72 20 69 66 20    er character if 
0184C0:  61 62 6F 76 65 20 22 39 22 0D 0A 2E 6F 6B 63 68    above "9"...okch
0184D0:  09 6C 64 20 28 68 6C 29 2C 61 0D 0A 09 69 6E 63    .ld (hl),a...inc
0184E0:  20 68 6C 0D 0A 09 69 6E 63 20 62 0D 0A 09 63 61     hl...inc b...ca
0184F0:  6C 6C 20 26 42 42 35 41 0D 0A 09 62 69 74 20 32    ll &BB5A...bit 2
018500:  2C 62 0D 0A 09 6A 72 20 7A 2C 77 61 69 74 63 68    ,b...jr z,waitch
018510:  0D 0A 0D 0A 2E 65 78 68 69 6E 70 20 63 61 6C 6C    .....exhinp call
018520:  20 26 42 42 38 34 09 09 3B 63 75 72 73 6F 72 20     &BB84..;cursor 
018530:  6F 66 66 0D 0A 09 6C 64 20 61 2C 62 0D 0A 09 6F    off...ld a,b...o
018540:  72 20 61 0D 0A 09 6A 72 20 7A 2C 6E 6F 68 69 6E    r a...jr z,nohin
018550:  70 09 09 3B 6E 6F 74 68 69 6E 67 20 69 6E 70 75    p..;nothing inpu
018560:  74 21 0D 0A 09 6C 64 20 64 65 2C 30 0D 0A 09 6C    t!...ld de,0...l
018570:  64 20 68 6C 2C 26 41 46 34 30 0D 0A 0D 0A 2E 68    d hl,&AF40.....h
018580:  63 6C 6F 6F 70 20 65 78 20 68 6C 2C 64 65 0D 0A    cloop ex hl,de..
018590:  09 61 64 64 20 68 6C 2C 68 6C 0D 0A 09 61 64 64    .add hl,hl...add
0185A0:  20 68 6C 2C 68 6C 0D 0A 09 61 64 64 20 68 6C 2C     hl,hl...add hl,
0185B0:  68 6C 0D 0A 09 61 64 64 20 68 6C 2C 68 6C 0D 0A    hl...add hl,hl..
0185C0:  09 65 78 20 68 6C 2C 64 65 0D 0A 09 6C 64 20 61    .ex hl,de...ld a
0185D0:  2C 28 68 6C 29 0D 0A 09 63 70 20 22 41 22 0D 0A    ,(hl)...cp "A"..
0185E0:  09 6A 72 20 6E 63 2C 6C 65 74 74 65 72 0D 0A 09    .jr nc,letter...
0185F0:  73 75 62 20 34 38 0D 0A 09 6A 72 20 61 64 64 32    sub 48...jr add2
018600:  69 6E 63 72 65 61 73 65 20 7A 65 72 6F 20 63 6F    increase zero co
018610:  75 6E 74 0D 0A 09 6C 64 20 62 63 2C 30 09 09 3B    unt...ld bc,0..;
018620:  65 6C 73 65 20 72 65 73 65 74 20 69 74 0D 0A 2E    else reset it...
018630:  72 70 6F 69 6E 74 09 6C 64 20 61 2C 64 0D 0A 09    rpoint.ld a,d...
018640:  63 70 20 26 41 30 09 09 3B 72 65 61 63 68 65 64    cp &A0..;reached
018650:  20 26 41 30 30 30 20 79 65 74 3F 0D 0A 09 6A 72     &A000 yet?...jr
018660:  20 6E 7A 2C 62 66 6C 6F 6F 70 09 3B 69 66 20 6E     nz,bfloop.;if n
018670:  6F 74 2C 20 6B 65 65 70 20 74 72 79 69 6E 67 2E    ot, keep trying.
018680:  2E 2E 21 0D 0A 09 6C 64 20 64 65 2C 26 43 30 30    ..!...ld de,&C00
018690:  30 09 3B 72 75 6E 20 6F 75 74 20 6F 66 20 6D 65    0.;run out of me
0186A0:  6D 6F 72 79 2C 20 73 6F 20 74 72 79 20 73 63 72    mory, so try scr
0186B0:  65 65 6E 20 6D 65 6D 6F 72 79 21 0D 0A 09 70 6F    een memory!...po
0186C0:  70 20 61 66 3A 20 70 6F 70 20 62 63 0D 0A 09 72    p af: pop bc...r
0186D0:  65 74 0D 0A 0D 0A 2E 69 73 7A 65 72 6F 09 69 6E    et.....iszero.in
0186E0:  63 20 62 63 09 09 3B 69 6E 63 72 65 61 73 65 20    c bc..;increase 
0186F0:  63 6F 75 6E 74 20 6F 66 20 7A 65 72 6F 73 0D 0A    count of zeros..
018700:  09 62 69 74 20 32 2C 62 09 09 3B 72 65 61 63 68    .bit 2,b..;reach
018710:  65 64 20 32 30 34 38 20 79 65 74 3F 0D 0A 09 6A    ed 2048 yet?...j
018720:  72 20 7A 2C 72 70 6F 69 6E 74 09 3B 69 66 20 6E    r z,rpoint.;if n
018730:  6F 74 2C 20 67 6F 20 62 61 63 6B 20 74 6F 20 63    ot, go back to c
018740:  68 65 63 6B 20 6E 65 78 74 20 62 79 74 65 0D 0A    heck next byte..
018750:  09 6F 72 20 61 09 09 3B 72 65 73 65 74 20 63 61    .or a..;reset ca
018760:  72 72 79 0D 0A 09 65 78 20 64 65 2C 68 6C 0D 0A    rry...ex de,hl..
018770:  09 73 62 63 20 68 6C 2C 62 63 09 3B 72 65 73 74    .sbc hl,bc.;rest
018780:  6F 72 65 20 44 45 20 74 6F 20 73 74 61 72 74 20    ore DE to start 
018790:  6F 66 20 7A 65 72 6F 73 0D 0A 09 65 78 20 64 65    of zeros...ex de
0187A0:  2C 68 6C 0D 0A 09 70 6F 70 20 61 66 3A 20 70 6F    ,hl...pop af: po
0187B0:  70 20 62 63 0D 0A 09 72 65 74 0D 0A 0D 0A 09 3B    p bc...ret.....;
0187C0:  3E 3E 3E 20 42 6C 61 6E 6B 20 32 6B 20 62 75 66    >>> Blank 2k buf
0187D0:  66 65 72 20 3C 6D 65 3E 0D 0A 0D 0A 2E 62 6B 62    fer <me>.....bkb
0187E0:  75 66 66 20 6C 64 20 61 2C 68 0D 0A 09 61 6E 64    uff ld a,h...and
0187F0:  20 26 43 30 0D 0A 09 63 70 20 26 43 30 09 09 3B     &C0...cp &C0..;
018800:  0D 0A 09 72 65 74 0D 0A 0D 0A 09 3B 3E 3E 3E 20    ...ret.....;>>> 
018810:  53 48 45 41 44 45 52 20 63 6F 6D 6D 61 6E 64 20    SHEADER command 
018820:  3C 52 6F 62 3E 0D 0A 0D 0A 2E 68 65 61 64 65 72    <Rob>.....header
018830:  20 6F 72 20 61 0D 0A 09 63 61 6C 6C 20 7A 2C 6E     or a...call z,n
018840:  6F 6E 61 6D 0D 0A 09 63 70 20 31 0D 0A 09 72 65    onam...cp 1...re
018850:  74 20 6E 7A 0D 0A 0D 0A 2E 67 65 74 6E 61 6D 09    t nz.....getnam.
018860:  6C 64 20 6C 2C 28 69 78 2B 26 30 30 29 0D 0A 09    ld l,(ix+&00)...
018870:  6C 64 20 68 2C 28 69 78 2B 26 30 31 29 0D 0A 09    ld h,(ix+&01)...
018880:  6C 64 20 61 2C 28 68 6C 29 0D 0A 09 6C 64 20 62    ld a,(hl)...ld b
018890:  2C 61 0D 0A 09 69 6E 63 20 68 6C 0D 0A 09 6C 64    ,a...inc hl...ld
0188A0:  20 65 2C 28 68 6C 29 0D 0A 09 69 6E 63 20 68 6C     e,(hl)...inc hl
0188B0:  0D 0A 09 6C 64 20 64 2C 28 68 6C 29 0D 0A 09 65    ...ld d,(hl)...e
0188C0:  78 20 68 6C 2C 64 65 0D 0A 09 6C 64 20 64 65 2C    x hl,de...ld de,
0188D0:  26 63 30 30 30 09 09 3B 41 64 64 72 65 73 73 20    &c000..;Address 
0188E0:  74 6F 20 6F 70 65 6E 20 32 6B 20 62 75 66 66 65    to open 2k buffe
0188F0:  72 0D 0A 2E 72 68 65 61 64 09 63 61 6C 6C 20 26    r...rhead.call &
018900:  62 63 37 37 09 09 3B 6F 70 65 6E 20 66 69 6C 65    bc77..;open file
018910:  20 66 6F 72 20 69 6E 70 75 74 0D 0A 09 6A 70 20     for input...jp 
018920:  6E 63 2C 65 72 72 6F 72 0D 0A 0D 0A 09 6C 64 20    nc,error.....ld 
018930:  28 64 5F 6C 6F 63 29 2C 64 65 0D 0A 09 6C 64 20    (d_loc),de...ld 
018940:  28 64 5F 6C 65 6E 29 2C 62 63 0D 0A 09 6C 64 20    (d_len),bc...ld 
018950:  28 64 5F 74 79 70 29 2C 61 0D 0A 09 70 75 73 68    (d_typ),a...push
018960:  20 64 65 0D 0A 09 6C 64 20 64 65 2C 26 31 61 0D     de...ld de,&1a.
018970:  0A 09 61 64 64 20 68 6C 2C 64 65 0D 0A 09 6C 64    ..add hl,de...ld
018980:  20 65 2C 28 68 6C 29 0D 0A 09 69 6E 63 20 68 6C     e,(hl)...inc hl
018990:  0D 0A 09 6C 64 20 64 2C 28 68 6C 29 0D 0A 09 6C    ...ld d,(hl)...l
0189A0:  64 20 28 66 65 78 65 63 29 2C 64 65 0D 0A 09 70    d (fexec),de...p
0189B0:  6F 70 20 68 6C 0D 0A 09 61 64 64 20 68 6C 2C 62    op hl...add hl,b
0189C0:  63 0D 0A 09 64 65 63 20 68 6C 0D 0A 09 6C 64 20    c...dec hl...ld 
0189D0:  28 64 5F 65 6E 64 29 2C 68 6C 0D 0A 09 63 61 6C    (d_end),hl...cal
0189E0:  6C 20 26 62 63 37 61 0D 0A 09 0D 0A 2E 64 69 73    l &bc7a......dis
0189F0:  70 69 6E 20 6C 64 20 68 6C 2C 73 74 61 72 74 0D    pin ld hl,start.
018A00:  69 73 20 69 74 20 69 6E 20 73 63 72 65 65 6E 20    is it in screen 
018A10:  6D 65 6D 6F 72 79 3F 0D 0A 09 6A 72 20 7A 2C 63    memory?...jr z,c
018A20:  6C 73 63 72 09 3B 69 66 20 73 6F 2C 20 67 6F 20    lscr.;if so, go 
018A30:  74 6F 20 63 6C 65 61 72 20 73 63 72 65 65 6E 0D    to clear screen.
018A40:  0A 09 6C 64 20 28 68 6C 29 2C 30 0D 0A 09 6C 64    ..ld (hl),0...ld
018A50:  20 64 2C 68 3A 20 6C 64 20 65 2C 6C 0D 0A 09 69     d,h: ld e,l...i
018A60:  6E 63 20 64 65 0D 0A 09 6C 64 20 62 63 2C 32 30    nc de...ld bc,20
018A70:  34 37 0D 0A 09 6C 64 69 72 09 09 3B 65 6C 73 65    47...ldir..;else
018A80:  20 62 6C 61 6E 6B 20 6F 75 74 20 32 6B 20 62 75     blank out 2k bu
018A90:  66 66 65 72 0D 0A 09 72 65 74 0D 0A 2E 63 6C 73    ffer...ret...cls
018AA0:  63 72 09 63 61 6C 6C 20 26 42 43 31 31 0D 0A 09    cr.call &BC11...
018AB0:  63 61 6C 6C 20 26 42 43 30 45 09 3B 63 6C 65 61    call &BC0E.;clea
018AC0:  72 20 73 63 72 65 65 6E 0D 0A 09 72 65 74 0D 0A    r screen...ret..
018AD0:  0D 0A 09 3B 3E 3E 3E 20 50 72 69 6E 74 20 73 74    ...;>>> Print st
018AE0:  72 69 6E 67 0D 0A 0D 0A 2E 73 74 72 69 6E 67 20    ring.....string 
018AF0:  6C 64 20 61 2C 28 68 6C 29 0D 0A 09 6F 72 20 61    ld a,(hl)...or a
018B00:  0D 0A 09 72 65 74 20 7A 0D 0A 09 63 61 6C 6C 20    ...ret z...call 
018B10:  26 62 62 35 61 0D 0A 09 69 6E 63 20 68 6C 0D 0A    &bb5a...inc hl..
018B20:  09 6A 72 20 73 74 72 69 6E 67 0D 0A 0D 0A 09 3B    .jr string.....;
018B30:  3E 3E 3E 20 49 6E 70 75 74 20 72 6F 75 74 69 6E    >>> Input routin
018B40:  65 20 28 31 36 20 63 68 61 72 61 63 74 65 72 73    e (16 characters
018B50:  29 20 3C 6D 65 3E 0D 0A 0D 0A 2E 69 6E 70 75 74    ) <me>.....input
018B60:  66 20 70 75 73 68 20 68 6C 3A 20 63 61 6C 6C 20    f push hl: call 
018B70:  26 42 42 38 31 0D 0A 09 6C 64 20 62 2C 30 0D 0A    &BB81...ld b,0..
018B80:  2E 67 69 6E 6B 65 79 20 63 61 6C 6C 20 26 42 42    .ginkey call &BB
018B90:  31 38 0D 0A 09 63 70 20 26 46 43 3A 20 6A 72 20    18...cp &FC: jr 
018BA0:  7A 2C 65 69 6E 70 66 0D 0A 09 63 70 20 31 33 3A    z,einpf...cp 13:
018BB0:  20 6A 72 20 7A 2C 65 69 6E 70 66 0D 0A 09 63 70     jr z,einpf...cp
018BC0:  20 33 32 3A 20 6A 72 20 63 2C 67 69 6E 6B 65 79     32: jr c,ginkey
018BD0:  0D 0A 09 63 70 20 31 32 37 3A 20 6A 72 20 7A 2C    ...cp 127: jr z,
018BE0:  64 65 6C 65 74 65 3A 20 6A 72 20 6E 63 2C 67 69    delete: jr nc,gi
018BF0:  6E 6B 65 79 0D 0A 09 62 69 74 20 34 2C 62 3A 20    nkey...bit 4,b: 
018C00:  0A 09 63 61 6C 6C 20 73 74 72 69 6E 67 0D 0A 09    ..call string...
018C10:  6C 64 20 68 6C 2C 28 64 5F 6C 6F 63 29 0D 0A 09    ld hl,(d_loc)...
018C20:  63 61 6C 6C 20 74 62 74 68 65 78 0D 0A 09 6C 64    call tbthex...ld
018C30:  20 68 6C 2C 6C 65 6E 67 74 68 0D 0A 09 63 61 6C     hl,length...cal
018C40:  6C 20 73 74 72 69 6E 67 0D 0A 09 6C 64 20 68 6C    l string...ld hl
018C50:  2C 28 64 5F 6C 65 6E 29 0D 0A 09 63 61 6C 6C 20    ,(d_len)...call 
018C60:  74 62 74 68 65 78 0D 0A 09 6C 64 20 68 6C 2C 66    tbthex...ld hl,f
018C70:  65 78 63 0D 0A 09 63 61 6C 6C 20 73 74 72 69 6E    exc...call strin
018C80:  67 0D 0A 09 6C 64 20 68 6C 2C 28 66 65 78 65 63    g...ld hl,(fexec
018C90:  29 0D 0A 09 63 61 6C 6C 20 74 62 74 68 65 78 0D    )...call tbthex.
018CA0:  0A 09 6C 64 20 68 6C 2C 64 61 74 65 6E 64 0D 0A    ..ld hl,datend..
018CB0:  09 63 61 6C 6C 20 73 74 72 69 6E 67 0D 0A 09 6C    .call string...l
018CC0:  64 20 68 6C 2C 28 64 5F 65 6E 64 29 0D 0A 09 63    d hl,(d_end)...c
018CD0:  61 6C 6C 20 74 62 74 68 65 78 0D 0A 09 6C 64 20    all tbthex...ld 
018CE0:  68 6C 2C 66 6C 74 79 70 65 0D 0A 09 63 61 6C 6C    hl,fltype...call
018CF0:  20 73 74 72 69 6E 67 0D 0A 09 6C 64 20 61 2C 28     string...ld a,(
018D00:  64 5F 74 79 70 29 0D 0A 09 63 61 6C 6C 20 68 65    d_typ)...call he
018D10:  78 70 72 74 0D 0A 09 6C 64 20 61 2C 26 30 61 3A    xprt...ld a,&0a:
018D20:  63 61 6C 6C 20 26 62 62 35 61 0D 0A 09 6C 64 20    call &bb5a...ld 
018D30:  61 2C 26 30 64 3A 63 61 6C 6C 20 26 62 62 35 61    a,&0d:call &bb5a
018D40:  0D 0A 09 72 65 74 0D 0A 0D 0A 09 3B 3E 3E 3E 20    ...ret.....;>>> 
018D50:  46 69 6C 65 6E 61 6D 65 20 69 6E 70 75 74 20 72    Filename input r
018D60:  6F 75 74 69 6E 65 20 3C 6D 65 3E 0D 0A 0D 0A 2E    outine <me>.....
018D70:  6E 6F 6E 61 6D 09 70 75 73 68 20 68 6C 0D 0A 09    nonam.push hl...
018D80:  6C 64 20 69 78 2C 26 41 46 30 30 0D 0A 09 6C 64    ld ix,&AF00...ld
018D90:  20 28 69 78 29 2C 26 30 32 0D 0A 09 6C 64 20 28     (ix),&02...ld (
018DA0:  69 78 2B 31 29 2C 26 41 46 09 3B 50 61 72 61 6D    ix+1),&AF.;Param
018DB0:  65 74 65 72 20 62 6C 6F 63 6B 20 40 20 26 41 46    eter block @ &AF
018DC0:  30 30 0D 0A 09 69 6E 63 20 69 78 3A 20 69 6E 63    00...inc ix: inc
018DD0:  20 69 78 09 3B 53 74 72 69 6E 67 20 64 65 73 63     ix.;String desc
018DE0:  72 69 70 74 6F 72 20 62 6C 6F 63 6B 20 40 20 26    riptor block @ &
018DF0:  41 46 30 32 0D 0A 09 6C 64 20 28 69 78 2B 31 29    AF02...ld (ix+1)
018E00:  6A 72 20 6E 7A 2C 67 69 6E 6B 65 79 0D 0A 09 63    jr nz,ginkey...c
018E10:  61 6C 6C 20 26 42 42 35 41 3A 20 6C 64 20 28 68    all &BB5A: ld (h
018E20:  6C 29 2C 61 3A 20 69 6E 63 20 68 6C 0D 0A 09 69    l),a: inc hl...i
018E30:  6E 63 20 62 3A 20 6A 72 20 67 69 6E 6B 65 79 0D    nc b: jr ginkey.
018E40:  0A 2E 64 65 6C 65 74 65 20 6C 64 20 61 2C 62 3A    ..delete ld a,b:
018E50:  20 6F 72 20 61 3A 20 6A 72 20 7A 2C 67 69 6E 6B     or a: jr z,gink
018E60:  65 79 0D 0A 09 64 65 63 20 62 3A 20 64 65 63 20    ey...dec b: dec 
018E70:  68 6C 3A 20 6C 64 20 28 68 6C 29 2C 30 0D 0A 09    hl: ld (hl),0...
018E80:  6C 64 20 61 2C 38 3A 20 63 61 6C 6C 20 26 42 42    ld a,8: call &BB
018E90:  35 41 3A 20 6C 64 20 61 2C 33 32 3A 20 63 61 6C    5A: ld a,32: cal
018EA0:  6C 20 26 42 42 35 41 0D 0A 09 6C 64 20 61 2C 38    l &BB5A...ld a,8
018EB0:  3A 20 63 61 6C 6C 20 26 42 42 35 41 3A 20 6A 72    : call &BB5A: jr
018EC0:  20 67 69 6E 6B 65 79 0D 0A 2E 65 69 6E 70 66 09     ginkey...einpf.
018ED0:  6C 64 20 28 68 6C 29 2C 30 3A 20 70 6F 70 20 68    ld (hl),0: pop h
018EE0:  6C 3A 20 70 75 73 68 20 61 66 3A 20 63 61 6C 6C    l: push af: call
018EF0:  20 26 42 42 38 34 3A 20 70 6F 70 20 61 66 3A 20     &BB84: pop af: 
018F00:  63 70 20 26 46 43 3A 20 72 65 74 0D 0A 0D 0A 09    cp &FC: ret.....
018F10:  3B 3E 3E 3E 20 48 65 78 20 69 6E 70 75 74 20 72    ;>>> Hex input r
018F20:  6F 75 74 69 6E 65 20 28 34 2D 62 79 74 65 29 20    outine (4-byte) 
018F30:  3C 6D 65 3E 0D 0A 0D 0A 2E 68 65 78 69 6E 70 20    <me>.....hexinp 
018F40:  6C 64 20 68 6C 2C 26 41 46 34 30 09 09 3B 69 6E    ld hl,&AF40..;in
018F50:  70 75 74 20 62 75 66 66 65 72 0D 0A 09 6C 64 20    put buffer...ld 
018F60:  62 2C 30 09 09 09 3B 63 68 61 72 61 63 74 65 72    b,0...;character
018F70:  73 20 74 79 70 65 64 20 69 6E 0D 0A 09 63 61 6C    s typed in...cal
018F80:  6C 20 26 42 42 38 31 09 09 3B 63 75 72 73 6F 72    l &BB81..;cursor
018F90:  20 6F 6E 0D 0A 0D 0A 2E 77 61 69 74 63 68 20 63     on.....waitch c
018FA0:  61 6C 6C 20 26 42 42 30 36 09 09 3B 77 61 69 74    all &BB06..;wait
018FB0:  20 66 6F 72 20 63 68 61 72 61 63 74 65 72 0D 0A     for character..
018FC0:  09 63 70 20 26 46 43 3A 20 20 20 6A 70 20 7A 2C    .cp &FC:   jp z,
018FD0:  26 42 42 38 34 09 3B 45 53 43 41 50 45 3F 20 73    &BB84.;ESCAPE? s
018FE0:  65 74 20 7A 65 72 6F 2C 20 69 6E 64 69 63 61 74    et zero, indicat
018FF0:  65 73 20 45 53 43 20 70 72 65 73 73 65 64 0D 0A    es ESC pressed..
019000:  54 72 61 63 6B 2D 49 6E 66 6F 0D 0A 00 00 00 00    Track-Info......
019010:  15 00 01 00 02 09 4E E5 15 00 C6 02 00 00 00 02    ......N.........
019020:  15 00 C2 02 00 00 00 02 15 00 C7 02 00 00 00 02    ................
019030:  15 00 C3 02 00 00 00 02 15 00 C8 02 00 00 00 02    ................
019040:  15 00 C4 02 00 00 00 02 15 00 C9 02 00 00 00 02    ................
019050:  15 00 C5 02 00 00 00 02 15 00 C1 02 00 00 00 02    ................
019060:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
019070:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
019080:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
019090:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
0190A0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
0190B0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
0190C0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
0190D0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
0190E0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
0190F0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
019100:  44 0D 0A 09 64 62 22 7C 53 48 45 41 44 45 52 2C    D...db"|SHEADER,
019110:  22 2C 33 34 2C 22 3C 66 69 6C 65 6E 61 6D 65 2E    ",34,"<filename.
019120:  65 78 74 3E 22 2C 33 34 2C 22 20 3A 20 64 69 73    ext>",34," : dis
019130:  70 6C 61 79 73 20 65 78 74 65 6E 64 65 64 20 69    plays extended i
019140:  6E 66 6F 72 6D 61 74 69 6F 6E 20 61 62 6F 75 74    nformation about
019150:  20 66 69 6C 65 22 2C 26 30 61 2C 26 30 64 0D 0A     file",&0a,&0d..
019160:  09 64 62 22 7C 53 4C 4F 41 44 2C 22 2C 33 34 2C    .db"|SLOAD,",34,
019170:  22 3C 66 69 6C 65 6E 61 6D 65 2E 65 78 74 3E 22    "<filename.ext>"
019180:  2C 33 34 2C 22 20 20 20 3A 20 6C 6F 61 64 20 61    ,34,"   : load a
019190:  20 66 69 6C 65 20 69 6E 74 6F 20 61 6E 79 77 68     file into anywh
0191A0:  65 72 65 20 69 6E 20 6D 65 6D 6F 72 79 22 2C 26    ere in memory",&
0191B0:  30 41 2C 26 30 44 0D 0A 09 64 62 22 7C 53 50 4C    0A,&0D...db"|SPL
0191C0:  4F 41 44 2C 22 2C 33 34 2C 22 3C 66 69 6C 65 6E    OAD,",34,"<filen
0191D0:  61 6D 65 2E 65 78 74 3E 22 2C 33 34 2C 22 20 20    ame.ext>",34,"  
0191E0:  3A 20 6C 6F 61 64 20 61 20 70 72 6F 74 65 63 74    : load a protect
0191F0:  65 64 20 42 41 53 49 43 20 66 69 6C 65 22 2C 26    ed BASIC file",&
019200:  30 61 2C 26 30 64 0D 0A 09 64 62 22 7C 53 56 45    0a,&0d...db"|SVE
019210:  52 49 46 59 20 22 2C 33 32 2C 22 20 20 20 20 20    RIFY ",32,"     
019220:  20 20 20 20 20 20 20 20 20 22 2C 33 32 2C 22 20             ",32," 
019230:  3A 20 76 65 72 69 66 79 20 74 68 65 20 53 2D 44    : verify the S-D
019240:  4F 53 20 66 6F 72 6D 61 74 20 64 69 73 63 20 69    OS format disc i
019250:  6E 20 64 72 69 76 65 20 42 22 2C 26 30 61 2C 26    n drive B",&0a,&
019260:  30 64 0D 0A 09 64 62 20 26 30 61 2C 26 30 64 2C    0d...db &0a,&0d,
019270:  26 30 30 0D 0A 0D 0A 2E 73 74 61 72 74 09 64 62    &00.....start.db
019280:  20 26 30 61 2C 26 30 64 0D 0A 2E 73 74 61 72 74     &0a,&0d...start
019290:  31 09 64 62 22 53 74 61 72 74 20 61 64 64 72 65    1.db"Start addre
0192A0:  73 73 20 20 3A 20 26 22 2C 26 30 30 0D 0A 0D 0A    ss  : &",&00....
0192B0:  2E 6C 65 6E 67 74 68 09 64 62 20 26 30 61 2C 26    .length.db &0a,&
0192C0:  30 64 0D 0A 09 64 62 22 4C 65 6E 67 74 68 20 20    0d...db"Length  
0192D0:  20 20 20 20 20 20 20 3A 20 26 22 2C 26 30 30 0D           : &",&00.
0192E0:  0A 0D 0A 2E 66 65 78 63 09 64 62 20 26 30 61 2C    ....fexc.db &0a,
0192F0:  26 30 64 0D 0A 09 64 62 22 45 78 65 63 75 74 65    &0d...db"Execute
019300:  26 37 34 2C 32 0D 0A 09 64 62 20 30 2C 30 2C 26    &74,2...db 0,0,&
019310:  37 39 2C 32 0D 0A 09 64 62 20 30 2C 30 2C 26 37    79,2...db 0,0,&7
019320:  35 2C 32 0D 0A 09 64 62 20 30 2C 30 2C 26 37 61    5,2...db 0,0,&7a
019330:  2C 32 0D 0A 0D 0A 09 3B 3E 3E 3E 20 58 50 42 20    ,2.....;>>> XPB 
019340:  66 6F 72 20 53 2D 44 4F 53 20 66 6F 72 6D 61 74    for S-DOS format
019350:  0D 0A 0D 0A 2E 78 70 62 09 64 77 20 26 32 38 09    .....xpb.dw &28.
019360:  09 3B 72 65 63 6F 72 64 73 20 70 65 72 20 74 72    .;records per tr
019370:  61 63 6B 0D 0A 09 64 62 20 26 30 34 09 09 3B 62    ack...db &04..;b
019380:  6C 6F 63 6B 20 73 68 69 66 74 0D 0A 09 64 62 20    lock shift...db 
019390:  26 30 66 09 09 3B 62 6C 6F 63 6B 20 6D 61 73 6B    &0f..;block mask
0193A0:  0D 0A 09 64 62 20 26 30 30 09 09 3B 65 78 74 65    ...db &00..;exte
0193B0:  6E 74 20 6D 61 73 6B 0D 0A 09 64 77 20 26 63 37    nt mask...dw &c7
0193C0:  09 09 3B 6E 75 6D 62 65 72 20 6F 66 20 62 6C 6F    ..;number of blo
0193D0:  63 6B 73 20 2D 31 0D 0A 09 64 77 20 26 37 66 09    cks -1...dw &7f.
0193E0:  09 3B 4E 75 6D 62 65 72 20 6F 66 20 64 69 72 65    .;Number of dire
0193F0:  63 74 6F 72 79 20 65 6E 74 72 69 65 73 20 2D 31    ctory entries -1
019400:  0D 0A 09 64 77 20 26 63 30 09 09 3B 6E 75 6D 62    ...dw &c0..;numb
019410:  65 72 20 6F 66 20 64 69 72 65 63 74 6F 72 79 20    er of directory 
019420:  62 6C 6F 63 6B 73 2C 20 62 69 74 20 73 69 67 6E    blocks, bit sign
019430:  69 66 69 63 61 6E 74 20 28 26 38 30 3D 31 20 26    ificant (&80=1 &
019440:  63 30 3D 32 29 0D 0A 09 64 77 20 26 31 30 09 09    c0=2)...dw &10..
019450:  3B 62 69 74 20 73 69 67 6E 69 66 69 63 61 6E 74    ;bit significant
019460:  20 63 68 65 63 6B 73 75 6D 20 76 65 63 74 6F 72     checksum vector
019470:  20 28 64 69 72 20 65 6E 74 72 69 65 73 2F 34 2B     (dir entries/4+
019480:  31 29 0D 0A 09 64 77 20 26 30 30 09 09 3B 6E 75    1)...dw &00..;nu
019490:  6D 62 65 72 20 6F 66 20 72 65 73 65 72 76 65 64    mber of reserved
0194A0:  20 74 72 61 63 6B 73 0D 0A 09 64 62 20 26 37 31     tracks...db &71
0194B0:  09 09 3B 66 69 72 73 74 20 73 65 63 74 6F 72 20    ..;first sector 
0194C0:  6E 75 6D 62 65 72 0D 0A 09 64 62 20 26 30 61 09    number...db &0a.
0194D0:  09 3B 6E 75 6D 62 65 72 20 6F 66 20 73 65 63 74    .;number of sect
0194E0:  6F 72 73 20 70 65 72 20 74 72 61 63 6B 20 28 31    ors per track (1
0194F0:  30 29 0D 0A 09 64 62 20 26 30 39 09 09 3B 67 61    0)...db &09..;ga
019500:  20 61 64 64 72 65 73 73 3A 20 26 22 2C 26 30 30     address: &",&00
019510:  0D 0A 0D 0A 2E 64 61 74 65 6E 64 09 64 62 20 26    .....datend.db &
019520:  30 61 2C 26 30 64 0D 0A 09 64 62 22 45 6E 64 20    0a,&0d...db"End 
019530:  61 64 64 72 65 73 73 20 20 20 20 3A 20 26 22 2C    address    : &",
019540:  26 30 30 0D 0A 0D 0A 2E 66 6C 74 79 70 65 20 64    &00.....fltype d
019550:  62 20 26 30 61 2C 26 30 64 0D 0A 09 64 62 22 46    b &0a,&0d...db"F
019560:  69 6C 65 20 74 79 70 65 20 20 20 20 20 20 3A 20    ile type      : 
019570:  26 22 2C 26 30 30 0D 0A 0D 0A 0D 0A 2E 65 74 65    &",&00.......ete
019580:  78 74 09 64 62 20 22 44 69 73 63 20 65 72 72 6F    xt.db "Disc erro
019590:  72 21 22 2C 26 41 2C 26 44 2C 26 41 2C 30 0D 0A    r!",&A,&D,&A,0..
0195A0:  0D 0A 2E 66 74 65 78 74 09 64 62 20 22 45 6E 74    ...ftext.db "Ent
0195B0:  65 72 20 66 69 6C 65 6E 61 6D 65 3A 20 20 22 2C    er filename:  ",
0195C0:  30 0D 0A 0D 0A 2E 64 5F 6C 6F 63 09 65 71 75 20    0.....d_loc.equ 
0195D0:  26 61 66 30 30 0D 0A 2E 64 5F 6C 65 6E 09 65 71    &af00...d_len.eq
0195E0:  75 20 26 61 66 30 32 0D 0A 2E 64 5F 74 79 70 09    u &af02...d_typ.
0195F0:  65 71 75 20 26 61 66 30 34 0D 0A 2E 64 5F 65 6E    equ &af04...d_en
019600:  64 09 65 71 75 20 26 61 66 30 36 0D 0A 2E 66 65    d.equ &af06...fe
019610:  78 65 63 09 65 71 75 20 26 61 66 30 38 1A 2A 2A    xec.equ &af08.**
019620:  2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 0D    ***************.
019630:  0A 09 3B 2A 20 53 44 4F 53 20 76 65 72 73 69 6F    ..;* SDOS versio
019640:  6E 20 31 2E 30 20 72 65 76 20 32 33 20 20 20 20    n 1.0 rev 23    
019650:  20 20 20 20 20 20 20 20 20 20 20 20 20 2A 0D 0A                 *..
019660:  09 3B 2A 20 57 72 69 74 74 65 6E 20 69 6E 20 5A    .;* Written in Z
019670:  38 30 20 41 53 53 45 4D 42 4C 45 52 20 6F 6E 20    80 ASSEMBLER on 
019680:  20 26 30 61 2C 26 30 64 0D 0A 2E 73 74 61 72 74     &0a,&0d...start
019690:  31 09 64 62 22 53 74 61 72 74 20 61 64 64 72 65    1.db"Start addre
0196A0:  73 73 20 20 3A 20 26 22 2C 26 30 30 0D 0A 0D 0A    ss  : &",&00....
0196B0:  2E 6C 65 6E 67 74 68 09 64 62 20 26 30 61 2C 26    .length.db &0a,&
0196C0:  30 64 0D 0A 09 64 62 22 4C 65 6E 67 74 68 20 20    0d...db"Length  
0196D0:  20 20 20 20 20 20 20 3A 20 26 22 2C 26 30 30 0D           : &",&00.
0196E0:  0A 0D 0A 2E 66 65 78 63 09 64 62 20 26 30 61 2C    ....fexc.db &0a,
0196F0:  26 30 64 0D 0A 09 64 62 22 45 78 65 63 75 74 65    &0d...db"Execute
019700:  70 20 6C 65 6E 67 74 68 20 28 72 65 61 64 2F 77    p length (read/w
019710:  72 69 74 65 29 0D 0A 09 64 62 20 26 31 30 09 09    rite)...db &10..
019720:  3B 67 61 70 20 6C 65 6E 67 74 68 20 28 66 6F 72    ;gap length (for
019730:  6D 61 74 29 0D 0A 09 64 62 20 26 65 35 09 09 3B    mat)...db &e5..;
019740:  66 69 6C 6C 65 72 20 62 79 74 65 20 66 6F 72 20    filler byte for 
019750:  66 6F 72 6D 61 74 74 69 6E 67 0D 0A 09 64 62 20    formatting...db 
019760:  26 30 32 09 09 3B 6C 6F 67 32 20 28 73 65 63 74    &02..;log2 (sect
019770:  6F 72 20 73 69 7A 65 29 20 2D 37 0D 0A 09 64 62    or size) -7...db
019780:  20 26 30 34 09 09 3B 73 65 63 74 6F 72 20 73 69     &04..;sector si
019790:  7A 65 2F 31 32 38 0D 0A 09 64 62 20 26 30 30 09    ze/128...db &00.
0197A0:  09 3B 5B 72 65 73 65 72 76 65 64 5D 20 63 75 72    .;[reserved] cur
0197B0:  72 65 6E 74 20 74 72 61 63 6B 0D 0A 09 64 62 20    rent track...db 
0197C0:  26 30 30 09 09 3B 5B 72 65 73 65 72 76 65 64 5D    &00..;[reserved]
0197D0:  20 61 6C 69 67 6E 65 64 3F 0D 0A 09 64 62 20 26     aligned?...db &
0197E0:  46 46 09 09 3B 64 6F 6E 27 74 20 61 75 74 6F 2D    FF..;don't auto-
0197F0:  73 65 6C 65 63 74 20 66 6F 72 6D 61 74 0D 0A 0D    select format...
019800:  0A 09 3B 3E 3E 3E 20 44 69 73 63 20 70 61 72 61    ..;>>> Disc para
019810:  6D 65 74 65 72 73 20 28 75 50 44 37 36 35 41 20    meters (uPD765A 
019820:  53 50 45 43 49 46 59 20 63 6F 6D 6D 61 6E 64 29    SPECIFY command)
019830:  0D 0A 0D 0A 2E 64 70 61 72 61 6D 09 64 77 20 35    .....dparam.dw 5
019840:  30 09 09 3B 6D 6F 74 6F 72 20 6F 6E 20 74 69 6D    0..;motor on tim
019850:  65 6F 75 74 0D 0A 09 64 77 20 32 35 30 09 09 3B    eout...dw 250..;
019860:  6D 6F 74 6F 72 20 6F 66 66 20 74 69 6D 65 6F 75    motor off timeou
019870:  74 0D 0A 09 64 62 20 31 37 35 09 09 3B 77 72 69    t...db 175..;wri
019880:  74 65 20 63 75 72 72 65 6E 74 20 6F 66 66 0D 0A    te current off..
019890:  09 64 62 20 31 35 09 09 3B 68 65 61 64 20 73 65    .db 15..;head se
0198A0:  74 74 6C 65 20 74 69 6D 65 0D 0A 09 64 62 20 31    ttle time...db 1
0198B0:  30 09 09 3B 28 66 61 73 74 65 72 29 20 73 74 65    0..;(faster) ste
0198C0:  70 20 72 61 74 65 20 74 69 6D 65 0D 0A 09 64 62    p rate time...db
0198D0:  20 31 09 09 3B 68 65 61 64 20 75 6E 6C 6F 61 64     1..;head unload
0198E0:  20 64 65 6C 61 79 0D 0A 09 64 62 20 33 09 09 3B     delay...db 3..;
0198F0:  68 65 61 64 20 6C 6F 61 64 20 64 65 6C 61 79 2C    head load delay,
019900:  0D 0A 09 3B 53 54 53 20 4D 65 65 74 69 6E 67 20    ...;STS Meeting 
019910:  44 65 6D 6F 20 2F 20 42 54 4C 20 33 20 69 6E 74    Demo / BTL 3 int
019920:  72 6F 0D 0A 09 3B 73 74 61 72 72 69 6E 67 20 54    ro...;starring T
019930:  61 6D 73 69 6E 20 74 68 65 20 57 6F 6E 64 65 72    amsin the Wonder
019940:  20 43 61 74 0D 0A 0D 0A 09 6F 72 67 20 26 38 30     Cat.....org &80
019950:  30 30 0D 0A 09 77 72 69 74 65 20 22 64 69 73 63    00...write "disc
019960:  2E 62 69 6E 22 0D 0A 09 6E 6F 6C 69 73 74 0D 0A    .bin"...nolist..
019970:  0D 0A 09 3B 44 65 6D 6F 20 73 68 6F 72 74 2C 20    ...;Demo short, 
019980:  73 68 61 72 70 2C 20 63 68 61 6F 74 69 63 2C 20    sharp, chaotic, 
019990:  22 63 72 61 73 68 65 73 22 20 61 74 20 65 6E 64    "crashes" at end
0199A0:  20 6F 66 20 73 63 72 6F 6C 6C 74 65 78 74 2E 0D     of scrolltext..
0199B0:  0A 09 3B 4E 69 6E 65 20 41 63 72 65 20 44 75 73    ..;Nine Acre Dus
0199C0:  74 3F 20 53 74 61 74 65 6E 20 49 73 6C 61 6E 64    t? Staten Island
0199D0:  3F 20 48 65 79 20 44 75 64 65 3F 0D 0A 0D 0A 63    ? Hey Dude?....c
0199E0:  61 74 31 72 09 65 71 75 20 26 43 30 30 30 0D 0A    at1r.equ &C000..
0199F0:  63 61 74 32 72 09 65 71 75 20 26 43 31 32 43 0D    cat2r.equ &C12C.
019A00:  0A 63 61 74 33 72 09 65 71 75 20 26 43 32 35 38    .cat3r.equ &C258
019A10:  0D 0A 63 61 74 31 6C 09 65 71 75 20 26 43 33 38    ..cat1l.equ &C38
019A20:  34 0D 0A 63 61 74 32 6C 09 65 71 75 20 26 43 34    4..cat2l.equ &C4
019A30:  42 30 0D 0A 63 61 74 33 6C 09 65 71 75 20 26 43    B0..cat3l.equ &C
019A40:  35 44 43 0D 0A 63 61 74 73 74 09 65 71 75 20 26    5DC..catst.equ &
019A50:  43 37 30 38 0D 0A 6D 75 73 69 63 09 65 71 75 20    C708..music.equ 
019A60:  26 44 30 30 30 0D 0A 0D 0A 74 6F 70 6C 6E 09 65    &D000....topln.e
019A70:  71 75 20 26 34 30 30 30 09 09 09 09 3B 39 2A 39    qu &4000....;9*9
019A80:  36 2B 26 38 30 2B 32 0D 0A 0D 0A 66 6F 6E 74 09    6+&80+2....font.
019A90:  65 71 75 20 26 39 42 30 30 09 09 09 09 3B 48 49    equ &9B00....;HI
019AA0:  4D 45 4D 2D 26 31 30 30 30 20 74 68 65 6E 20 70    MEM-&1000 then p
019AB0:  61 67 65 2D 61 6C 69 67 6E 65 64 0D 0A 0D 0A 09    age-aligned.....
019AC0:  3B 2A 2A 2A 20 49 4E 49 54 09 49 6E 69 74 69 61    ;*** INIT.Initia
019AD0:  6C 69 73 61 74 69 6F 6E 0D 0A 0D 0A 09 6C 64 20    lisation.....ld 
019AE0:  61 2C 31 3A 20 63 61 6C 6C 20 26 42 43 30 45 0D    a,1: call &BC0E.
019AF0:  0A 0D 0A 09 6C 64 20 68 6C 2C 26 42 30 46 46 3A    ....ld hl,&B0FF:
019B00:  20 6E 6F 6E 2D 44 4D 41 0D 0A 0D 0A 09 3B 3E 3E     non-DMA.....;>>
019B10:  3E 20 54 65 78 74 20 61 6E 64 20 6D 69 73 63 65    > Text and misce
019B20:  6C 6C 61 6E 65 6F 75 73 20 64 61 74 61 0D 0A 0D    llaneous data...
019B30:  0A 2E 74 69 74 6C 65 09 64 62 20 22 20 53 2D 44    ..title.db " S-D
019B40:  4F 53 20 22 2C 31 36 34 2C 22 31 39 39 32 20 53    OS ",164,"1992 S
019B50:  54 53 20 53 6F 66 74 77 61 72 65 2E 22 2C 26 30    TS Software.",&0
019B60:  41 2C 26 30 44 2C 26 30 41 2C 30 0D 0A 0D 0A 2E    A,&0D,&0A,0.....
019B70:  62 74 78 74 09 64 62 22 53 79 73 74 65 6D 20 70    btxt.db"System p
019B80:  61 74 63 68 65 64 2C 20 70 6C 65 61 73 65 20 72    atched, please r
019B90:  75 6E 20 42 41 53 49 43 20 66 69 6C 65 2E 22 2C    un BASIC file.",
019BA0:  26 30 61 2C 26 30 64 2C 26 30 30 0D 0A 0D 0A 2E    &0a,&0d,&00.....
019BB0:  68 74 78 74 09 64 62 20 26 30 34 2C 26 30 32 0D    htxt.db &04,&02.
019BC0:  0A 09 64 62 22 53 2D 44 4F 53 20 76 65 72 73 69    ..db"S-DOS versi
019BD0:  6F 6E 20 31 2E 30 20 22 2C 31 36 34 2C 22 31 39    on 1.0 ",164,"19
019BE0:  39 32 20 52 69 63 68 61 72 64 20 46 61 69 72 68    92 Richard Fairh
019BF0:  75 72 73 74 20 61 6E 64 20 52 6F 62 20 53 63 6F    urst and Rob Sco
019C00:  74 74 2C 20 53 54 53 20 53 6F 66 74 77 61 72 65    tt, STS Software
019C10:  22 2C 26 30 61 2C 26 30 64 2C 26 30 61 2C 26 30    ",&0a,&0d,&0a,&0
019C20:  64 0D 0A 09 64 62 22 43 6F 6D 6D 61 6E 64 73 20    d...db"Commands 
019C30:  61 76 61 69 6C 61 62 6C 65 3A 22 2C 26 30 61 2C    available:",&0a,
019C40:  26 30 64 2C 26 30 61 2C 26 30 64 0D 0A 09 64 62    &0d,&0a,&0d...db
019C50:  22 7C 41 4D 53 44 4F 53 20 22 2C 33 32 2C 22 20    "|AMSDOS ",32," 
019C60:  20 20 20 20 20 20 20 20 20 20 20 20 22 2C 33 32                ",32
019C70:  2C 22 20 20 20 3A 20 72 65 73 65 74 20 74 68 65    ,"   : reset the
019C80:  20 42 20 64 72 69 76 65 20 74 6F 20 6E 6F 72 6D     B drive to norm
019C90:  61 6C 20 41 4D 53 44 4F 53 20 66 6F 72 6D 61 74    al AMSDOS format
019CA0:  73 22 2C 26 30 61 2C 26 30 64 20 0D 0A 20 09 64    s",&0a,&0d .. .d
019CB0:  62 22 7C 42 52 55 4E 2C 22 2C 33 34 2C 22 3C 66    b"|BRUN,",34,"<f
019CC0:  69 6C 65 6E 61 6D 65 2E 65 78 74 3E 22 2C 33 34    ilename.ext>",34
019CD0:  2C 22 20 20 20 20 3A 20 52 55 4E 20 61 20 66 69    ,"    : RUN a fi
019CE0:  6C 65 20 66 72 6F 6D 20 61 20 62 69 67 20 66 6F    le from a big fo
019CF0:  72 6D 61 74 20 64 72 69 76 65 20 42 22 2C 26 30    rmat drive B",&0
019D00:  20 6C 64 20 63 2C 37 0D 0A 09 6C 64 20 64 65 2C     ld c,7...ld de,
019D10:  26 30 30 34 30 3A 20 63 61 6C 6C 20 26 42 43 43    &0040: call &BCC
019D20:  45 0D 0A 0D 0A 09 6C 64 20 68 6C 2C 73 6E 61 6D    E.....ld hl,snam
019D30:  65 3A 20 6C 64 20 62 2C 31 32 0D 0A 09 6C 64 20    e: ld b,12...ld 
019D40:  64 65 2C 26 43 30 30 30 3A 20 63 61 6C 6C 20 26    de,&C000: call &
019D50:  42 43 37 37 0D 0A 09 6C 64 20 68 6C 2C 26 43 30    BC77...ld hl,&C0
019D60:  30 30 3A 20 63 61 6C 6C 20 26 42 43 38 33 0D 0A    00: call &BC83..
019D70:  09 63 61 6C 6C 20 26 42 43 37 41 0D 0A 0D 0A 09    .call &BC7A.....
019D80:  6C 64 20 68 6C 2C 26 43 31 34 30 3A 20 6C 64 20    ld hl,&C140: ld 
019D90:  64 65 2C 26 33 45 38 3A 20 63 61 6C 6C 20 63 73    de,&3E8: call cs
019DA0:  74 73 5F 72 0D 0A 09 6C 64 20 68 6C 2C 26 43 31    ts_r...ld hl,&C1
019DB0:  39 30 3A 20 6C 64 20 64 65 2C 26 34 34 38 3A 20    90: ld de,&448: 
019DC0:  63 61 6C 6C 20 63 73 74 73 5F 72 0D 0A 09 6C 64    call csts_r...ld
019DD0:  20 68 6C 2C 26 43 31 45 30 3A 20 6C 64 20 64 65     hl,&C1E0: ld de
019DE0:  2C 26 34 41 38 3A 20 63 61 6C 6C 20 63 73 74 73    ,&4A8: call csts
019DF0:  5F 72 0D 0A 09 6C 64 20 68 6C 2C 26 43 32 33 30    _r...ld hl,&C230
019E00:  3A 20 6C 64 20 64 65 2C 26 35 30 38 3A 20 63 61    : ld de,&508: ca
019E10:  6C 6C 20 63 73 74 73 5F 72 0D 0A 09 6C 64 20 68    ll csts_r...ld h
019E20:  6C 2C 26 43 32 38 30 3A 20 6C 64 20 64 65 2C 26    l,&C280: ld de,&
019E30:  35 36 38 3A 20 63 61 6C 6C 20 63 73 74 73 5F 72    568: call csts_r
019E40:  0D 0A 09 6C 64 20 68 6C 2C 26 43 32 44 30 3A 20    ...ld hl,&C2D0: 
019E50:  6C 64 20 64 65 2C 26 35 43 38 3A 20 63 61 6C 6C    ld de,&5C8: call
019E60:  20 63 73 74 73 5F 72 0D 0A 09 6C 64 20 68 6C 2C     csts_r...ld hl,
019E70:  26 43 33 32 30 3A 20 6C 64 20 64 65 2C 26 36 32    &C320: ld de,&62
019E80:  38 3A 20 63 61 6C 6C 20 63 73 74 73 5F 72 0D 0A    8: call csts_r..
019E90:  09 6C 64 20 68 6C 2C 26 43 33 37 30 3A 20 6C 64    .ld hl,&C370: ld
019EA0:  20 64 65 2C 26 36 38 38 3A 20 63 61 6C 6C 20 63     de,&688: call c
019EB0:  73 74 73 5F 72 0D 0A 09 6C 64 20 68 6C 2C 26 43    sts_r...ld hl,&C
019EC0:  33 43 30 3A 20 6C 64 20 64 65 2C 26 36 45 38 3A    3C0: ld de,&6E8:
019ED0:  20 63 61 6C 6C 20 63 73 74 73 5F 72 0D 0A 09 6C     call csts_r...l
019EE0:  64 20 68 6C 2C 26 43 34 31 30 3A 20 6C 64 20 64    d hl,&C410: ld d
019EF0:  65 2C 26 37 34 38 3A 20 63 61 6C 6C 20 63 73 74    e,&748: call cst
019F00:  61 2C 26 30 64 0D 0A 09 64 62 22 7C 43 41 54 2C    a,&0d...db"|CAT,
019F10:  30 2F 31 22 2C 33 32 2C 22 20 20 20 20 20 20 20    0/1",32,"       
019F20:  20 20 20 20 20 20 20 22 2C 33 32 2C 22 20 20 3A           ",32,"  :
019F30:  20 63 61 74 61 6C 6F 67 75 65 20 64 72 69 76 65     catalogue drive
019F40:  20 41 20 6F 72 20 64 72 69 76 65 20 42 22 2C 26     A or drive B",&
019F50:  30 41 2C 26 30 44 0D 0A 09 64 62 22 7C 43 4F 50    0A,&0D...db"|COP
019F60:  59 41 42 2C 22 2C 33 34 2C 22 3C 66 69 6C 65 6E    YAB,",34,"<filen
019F70:  61 6D 65 2E 65 78 74 3E 22 2C 33 34 2C 22 20 20    ame.ext>",34,"  
019F80:  3A 20 63 6F 70 79 20 61 20 66 69 6C 65 20 66 72    : copy a file fr
019F90:  6F 6D 20 64 72 69 76 65 20 41 20 74 6F 20 64 72    om drive A to dr
019FA0:  69 76 65 20 42 22 2C 26 30 61 2C 26 30 64 0D 0A    ive B",&0a,&0d..
019FB0:  09 64 62 22 7C 43 4F 50 59 42 41 2C 22 2C 33 34    .db"|COPYBA,",34
019FC0:  2C 22 3C 66 69 6C 65 6E 61 6D 65 2E 65 78 74 3E    ,"<filename.ext>
019FD0:  22 2C 33 34 2C 22 20 20 3A 20 63 6F 70 79 20 61    ",34,"  : copy a
019FE0:  20 66 69 6C 65 20 66 72 6F 6D 20 64 72 69 76 65     file from drive
019FF0:  20 42 20 74 6F 20 64 72 69 76 65 20 41 22 2C 26     B to drive A",&
01A000:  30 61 2C 26 30 64 0D 0A 09 64 62 22 7C 53 46 4F    0a,&0d...db"|SFO
01A010:  52 4D 41 54 20 22 2C 33 32 2C 22 20 20 20 20 20    RMAT ",32,"     
01A020:  20 20 20 20 20 20 20 20 20 22 2C 33 32 2C 22 20             ",32," 
01A030:  3A 20 66 6F 72 6D 61 74 20 74 68 65 20 64 69 73    : format the dis
01A040:  63 20 69 6E 20 64 72 69 76 65 20 42 20 74 6F 20    c in drive B to 
01A050:  53 2D 44 4F 53 20 66 6F 72 6D 61 74 22 2C 26 30    S-DOS format",&0
01A060:  61 2C 26 30 64 0D 0A 09 64 62 22 20 20 20 20 20    a,&0d...db"     
01A070:  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                    
01A080:  20 20 20 20 20 20 20 28 33 39 36 6B 2C 20 31 32           (396k, 12
01A090:  38 20 64 69 72 65 63 74 6F 72 79 20 65 6E 74 72    8 directory entr
01A0A0:  69 65 73 29 22 2C 26 30 61 2C 26 30 64 0D 0A 09    ies)",&0a,&0d...
01A0B0:  64 62 22 7C 53 46 4F 52 4D 41 54 2C 31 22 2C 33    db"|SFORMAT,1",3
01A0C0:  32 2C 22 20 20 20 20 20 20 20 20 20 20 20 20 20    2,"             
01A0D0:  22 2C 33 32 2C 22 20 3A 20 73 65 74 20 75 70 20    ",32," : set up 
01A0E0:  53 2D 44 4F 53 20 66 6F 72 6D 61 74 20 66 6F 72    S-DOS format for
01A0F0:  20 64 72 69 76 65 20 42 22 2C 26 30 41 2C 26 30     drive B",&0A,&0
01A100:  64 65 0D 0A 2E 6C 65 74 74 65 72 20 73 75 62 20    de...letter sub 
01A110:  35 35 0D 0A 2E 61 64 64 32 64 65 20 70 75 73 68    55...add2de push
01A120:  20 62 63 0D 0A 09 6C 64 20 63 2C 61 3A 20 6C 64     bc...ld c,a: ld
01A130:  20 62 2C 30 0D 0A 09 65 78 20 68 6C 2C 64 65 3A     b,0...ex hl,de:
01A140:  20 61 64 64 20 68 6C 2C 62 63 3A 20 65 78 20 68     add hl,bc: ex h
01A150:  6C 2C 64 65 0D 0A 09 70 6F 70 20 62 63 0D 0A 09    l,de...pop bc...
01A160:  69 6E 63 20 68 6C 0D 0A 09 64 65 63 20 62 3A 20    inc hl...dec b: 
01A170:  6A 72 20 6E 7A 2C 68 63 6C 6F 6F 70 0D 0A 0D 0A    jr nz,hcloop....
01A180:  09 65 78 20 68 6C 2C 64 65 0D 0A 09 6C 64 20 61    .ex hl,de...ld a
01A190:  2C 31 3A 20 6F 72 20 61 09 09 3B 72 65 73 65 74    ,1: or a..;reset
01A1A0:  20 7A 65 72 6F 2C 20 72 65 73 65 74 20 63 61 72     zero, reset car
01A1B0:  72 79 2C 20 69 6E 64 69 63 61 74 65 73 20 6E 75    ry, indicates nu
01A1C0:  6D 62 65 72 20 69 6E 20 48 4C 0D 0A 09 72 65 74    mber in HL...ret
01A1D0:  0D 0A 0D 0A 2E 6E 6F 68 69 6E 70 09 6C 64 20 61    .....nohinp.ld a
01A1E0:  2C 31 3A 20 6F 72 20 61 3A 20 73 63 66 09 3B 72    ,1: or a: scf.;r
01A1F0:  65 73 65 74 20 7A 65 72 6F 2C 20 73 65 74 20 63    eset zero, set c
01A200:  61 72 72 79 2C 20 69 6E 64 69 63 61 74 65 73 20    arry, indicates 
01A210:  6E 6F 20 69 6E 70 75 74 0D 0A 09 72 65 74 0D 0A    no input...ret..
01A220:  0D 0A 09 3B 3E 3E 3E 20 44 69 73 63 20 52 4F 4D    ...;>>> Disc ROM
01A230:  20 6A 75 6D 70 73 0D 0A 0D 0A 2E 72 65 61 64 09     jumps.....read.
01A240:  64 77 20 26 43 30 33 43 2C 37 0D 0A 09 64 73 20    dw &C03C,7...ds 
01A250:  32 0D 0A 0D 0A 2E 66 74 72 61 63 6B 09 64 77 20    2.....ftrack.dw 
01A260:  26 43 30 34 32 2C 37 0D 0A 0D 0A 2E 73 65 74 75    &C042,7.....setu
01A270:  70 09 64 77 20 26 43 30 33 36 2C 37 0D 0A 0D 0A    p.dw &C036,7....
01A280:  09 3B 3E 3E 3E 20 46 6F 72 6D 61 74 20 76 65 63    .;>>> Format vec
01A290:  74 6F 72 0D 0A 0D 0A 2E 73 65 63 62 75 66 20 64    tor.....secbuf d
01A2A0:  62 20 30 2C 30 2C 26 37 31 2C 32 0D 0A 09 64 62    b 0,0,&71,2...db
01A2B0:  20 30 2C 30 2C 26 37 36 2C 32 0D 0A 09 64 62 20     0,0,&76,2...db 
01A2C0:  30 2C 30 2C 26 37 32 2C 32 0D 0A 09 64 62 20 30    0,0,&72,2...db 0
01A2D0:  2C 30 2C 26 37 37 2C 32 0D 0A 09 64 62 20 30 2C    ,0,&77,2...db 0,
01A2E0:  30 2C 26 37 33 2C 32 0D 0A 09 64 62 20 30 2C 30    0,&73,2...db 0,0
01A2F0:  2C 26 37 38 2C 32 0D 0A 09 64 62 20 30 2C 30 2C    ,&78,2...db 0,0,
01A300:  54 72 61 63 6B 2D 49 6E 66 6F 0D 0A 00 00 00 00    Track-Info......
01A310:  16 00 01 00 02 09 4E E5 16 00 C9 02 00 00 00 02    ......N.........
01A320:  16 00 C5 02 00 00 00 02 16 00 C1 02 00 00 00 02    ................
01A330:  16 00 C6 02 00 00 00 02 16 00 C2 02 00 00 00 02    ................
01A340:  16 00 C7 02 00 00 00 02 16 00 C3 02 00 00 00 02    ................
01A350:  16 00 C8 02 00 00 00 02 16 00 C4 02 00 00 00 02    ................
01A360:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
01A370:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
01A380:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
01A390:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
01A3A0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
01A3B0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
01A3C0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
01A3D0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
01A3E0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
01A3F0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
01A400:  09 6C 64 20 62 63 2C 66 6F 6E 74 3A 20 61 64 64    .ld bc,font: add
01A410:  20 68 6C 2C 62 63 3A 20 72 65 74 0D 0A 0D 0A 09     hl,bc: ret.....
01A420:  3B 2D 2D 2D 20 73 75 62 72 09 50 72 69 6E 74 20    ;--- subr.Print 
01A430:  38 20 72 6F 77 73 2F 31 20 63 6F 6C 75 6D 6E 20    8 rows/1 column 
01A440:  6F 6E 20 73 63 72 65 65 6E 0D 0A 0D 0A 2E 72 6F    on screen.....ro
01A450:  77 09 6C 64 20 62 63 2C 26 30 33 30 38 0D 0A 09    w.ld bc,&0308...
01A460:  6C 64 69 3A 20 69 6E 63 20 63 3A 64 65 63 20 65    ldi: inc c:dec e
01A470:  3A 20 6C 64 20 61 2C 6C 3A 61 64 64 20 62 3A 6C    : ld a,l:add b:l
01A480:  64 20 6C 2C 61 3A 20 6C 64 20 61 2C 64 3A 61 64    d l,a: ld a,d:ad
01A490:  64 20 63 3A 6C 64 20 64 2C 61 0D 0A 09 6C 64 69    d c:ld d,a...ldi
01A4A0:  3A 20 69 6E 63 20 63 3A 64 65 63 20 65 3A 20 6C    : inc c:dec e: l
01A4B0:  64 20 61 2C 6C 3A 61 64 64 20 62 3A 6C 64 20 6C    d a,l:add b:ld l
01A4C0:  2C 61 3A 20 6C 64 20 61 2C 64 3A 61 64 64 20 63    ,a: ld a,d:add c
01A4D0:  3A 6C 64 20 64 2C 61 0D 0A 09 6C 64 69 3A 20 69    :ld d,a...ldi: i
01A4E0:  6E 63 20 63 3A 64 65 63 20 65 3A 20 6C 64 20 61    nc c:dec e: ld a
01A4F0:  2C 6C 3A 61 64 64 20 62 3A 6C 64 20 6C 2C 61 3A    ,l:add b:ld l,a:
01A500:  20 6C 64 20 61 2C 64 3A 61 64 64 20 63 3A 6C 64     ld a,d:add c:ld
01A510:  20 64 2C 61 0D 0A 09 6C 64 69 3A 20 69 6E 63 20     d,a...ldi: inc 
01A520:  63 3A 64 65 63 20 65 3A 20 6C 64 20 61 2C 6C 3A    c:dec e: ld a,l:
01A530:  61 64 64 20 62 3A 6C 64 20 6C 2C 61 3A 20 6C 64    add b:ld l,a: ld
01A540:  20 61 2C 64 3A 61 64 64 20 63 3A 6C 64 20 64 2C     a,d:add c:ld d,
01A550:  61 0D 0A 09 6C 64 69 3A 20 69 6E 63 20 63 3A 64    a...ldi: inc c:d
01A560:  65 63 20 65 3A 20 6C 64 20 61 2C 6C 3A 61 64 64    ec e: ld a,l:add
01A570:  20 62 3A 6C 64 20 6C 2C 61 3A 20 6C 64 20 61 2C     b:ld l,a: ld a,
01A580:  64 3A 61 64 64 20 63 3A 6C 64 20 64 2C 61 0D 0A    d:add c:ld d,a..
01A590:  09 6C 64 69 3A 20 69 6E 63 20 63 3A 64 65 63 20    .ldi: inc c:dec 
01A5A0:  65 3A 20 6C 64 20 61 2C 6C 3A 61 64 64 20 62 3A    e: ld a,l:add b:
01A5B0:  6C 64 20 6C 2C 61 3A 20 6C 64 20 61 2C 64 3A 61    ld l,a: ld a,d:a
01A5C0:  64 64 20 63 3A 6C 64 20 64 2C 61 0D 0A 09 6C 64    dd c:ld d,a...ld
01A5D0:  69 3A 20 69 6E 63 20 63 3A 64 65 63 20 65 3A 20    i: inc c:dec e: 
01A5E0:  6C 64 20 61 2C 6C 3A 61 64 64 20 62 3A 6C 64 20    ld a,l:add b:ld 
01A5F0:  6C 2C 61 3A 20 6C 64 20 61 2C 64 3A 61 64 64 20    l,a: ld a,d:add 
01A600:  6C 2C 61 3A 20 6C 64 20 68 2C 30 3A 20 61 64 64    l,a: ld h,0: add
01A610:  20 68 6C 2C 68 6C 3A 20 61 64 64 20 68 6C 2C 68     hl,hl: add hl,h
01A620:  6C 3A 20 70 75 73 68 20 68 6C 09 3B 20 7C 0D 0A    l: push hl.; |..
01A630:  09 61 64 64 20 68 6C 2C 68 6C 3A 20 70 6F 70 20    .add hl,hl: pop 
01A640:  64 65 3A 20 61 64 64 20 68 6C 2C 64 65 09 09 09    de: add hl,de...
01A650:  3B 20 7C 0D 0A 0D 0A 09 6C 64 20 61 2C 63 3A 20    ; |.....ld a,c: 
01A660:  61 6E 64 20 37 3A 20 61 64 64 20 61 3A 20 61 64    and 7: add a: ad
01A670:  64 20 61 3A 20 61 64 64 20 61 09 09 3B 38 2A 28    d a: add a..;8*(
01A680:  72 6F 77 20 4D 4F 44 20 38 29 20 2D 20 73 75 62    row MOD 8) - sub
01A690:  72 6F 77 73 0D 0A 09 6C 64 20 64 2C 61 3A 20 6C    rows...ld d,a: l
01A6A0:  64 20 65 2C 30 3A 20 61 64 64 20 68 6C 2C 64 65    d e,0: add hl,de
01A6B0:  09 09 09 3B 20 7C 0D 0A 09 72 65 74 0D 0A 0D 0A    ...; |...ret....
01A6C0:  09 3B 2A 2A 2A 20 52 4F 55 54 09 55 70 64 61 74    .;*** ROUT.Updat
01A6D0:  65 20 70 6F 73 69 74 69 6F 6E 0D 0A 0D 0A 2E 75    e position.....u
01A6E0:  70 64 61 74 65 09 6C 64 20 64 65 2C 28 61 6E 69    pdate.ld de,(ani
01A6F0:  5F 63 29 3A 20 6C 64 20 61 2C 28 63 61 74 70 69    _c): ld a,(catpi
01A700:  63 29 0D 0A 2E 75 70 64 5F 6C 70 09 6C 64 20 68    c)...upd_lp.ld h
01A710:  6C 2C 32 35 36 3A 20 6F 72 20 61 3A 20 73 62 63    l,256: or a: sbc
01A720:  20 68 6C 2C 64 65 3A 20 6A 72 20 7A 2C 75 70 64     hl,de: jr z,upd
01A730:  5F 72 73 0D 0A 09 6C 64 20 68 6C 2C 32 30 37 3A    _rs...ld hl,207:
01A740:  20 6F 72 20 61 3A 20 73 62 63 20 68 6C 2C 64 65     or a: sbc hl,de
01A750:  3A 20 6A 72 20 63 2C 6C 69 66 74 5F 75 0D 0A 09    : jr c,lift_u...
01A760:  6C 64 20 68 6C 2C 31 32 37 3A 20 6F 72 20 61 3A    ld hl,127: or a:
01A770:  20 73 62 63 20 68 6C 2C 64 65 3A 20 6A 72 20 63     sbc hl,de: jr c
01A780:  2C 77 61 6C 6B 5F 6C 0D 0A 09 6C 64 20 68 6C 2C    ,walk_l...ld hl,
01A790:  37 39 20 3A 20 6F 72 20 61 3A 20 73 62 63 20 68    79 : or a: sbc h
01A7A0:  6C 2C 64 65 3A 20 6A 72 20 63 2C 6C 69 66 74 5F    l,de: jr c,lift_
01A7B0:  64 0D 0A 0D 0A 2E 77 61 6C 6B 5F 72 09 6C 64 20    d.....walk_r.ld 
01A7C0:  68 6C 2C 61 6E 69 5F 78 3A 69 6E 63 20 28 68 6C    hl,ani_x:inc (hl
01A7D0:  29 3A 20 69 6E 63 20 64 65 3A 6C 64 20 28 61 6E    ): inc de:ld (an
01A7E0:  69 5F 63 29 2C 64 65 3A 20 69 6E 63 20 61 3A 61    i_c),de: inc a:a
01A7F0:  6E 64 20 33 3A 20 20 20 20 20 6C 64 20 28 63 61    nd 3:     ld (ca
01A800:  73 5F 72 0D 0A 0D 0A 09 6C 64 20 68 6C 2C 66 6E    s_r.....ld hl,fn
01A810:  61 6D 65 3A 20 6C 64 20 62 2C 31 32 3A 20 63 61    ame: ld b,12: ca
01A820:  6C 6C 20 26 42 43 37 37 3A 20 6C 64 20 68 6C 2C    ll &BC77: ld hl,
01A830:  26 43 30 30 30 3A 20 63 61 6C 6C 20 26 42 43 38    &C000: call &BC8
01A840:  33 3A 20 63 61 6C 6C 20 26 42 43 37 41 0D 0A 09    3: call &BC7A...
01A850:  6C 64 20 68 6C 2C 6C 6E 61 6D 65 3A 20 6C 64 20    ld hl,lname: ld 
01A860:  62 2C 31 32 3A 20 63 61 6C 6C 20 26 42 43 37 37    b,12: call &BC77
01A870:  3A 20 6C 64 20 68 6C 2C 66 6F 6E 74 20 3A 20 63    : ld hl,font : c
01A880:  61 6C 6C 20 26 42 43 38 33 3A 20 63 61 6C 6C 20    all &BC83: call 
01A890:  26 42 43 37 41 0D 0A 09 6C 64 20 68 6C 2C 6D 6E    &BC7A...ld hl,mn
01A8A0:  61 6D 65 3A 20 6C 64 20 62 2C 31 32 3A 20 63 61    ame: ld b,12: ca
01A8B0:  6C 6C 20 26 42 43 37 37 3A 20 6C 64 20 68 6C 2C    ll &BC77: ld hl,
01A8C0:  6D 75 73 69 63 3A 20 63 61 6C 6C 20 26 42 43 38    music: call &BC8
01A8D0:  33 3A 20 63 61 6C 6C 20 26 42 43 37 41 0D 0A 0D    3: call &BC7A...
01A8E0:  0A 09 6C 64 20 62 63 2C 26 30 37 32 33 3A 20 63    ..ld bc,&0723: c
01A8F0:  61 6C 6C 20 63 72 74 63 0D 0A 09 6C 64 20 62 63    all crtc...ld bc
01A900:  2C 26 30 33 38 35 3A 20 63 61 6C 6C 20 63 72 74    ,&0385: call crt
01A910:  63 0D 0A 09 6C 64 20 62 63 2C 26 30 32 33 32 3A    c...ld bc,&0232:
01A920:  20 63 61 6C 6C 20 63 72 74 63 0D 0A 09 6C 64 20     call crtc...ld 
01A930:  62 63 2C 26 30 36 32 31 3A 20 63 61 6C 6C 20 63    bc,&0621: call c
01A940:  72 74 63 0D 0A 09 6C 64 20 62 63 2C 26 30 31 33    rtc...ld bc,&013
01A950:  30 3A 20 63 61 6C 6C 20 63 72 74 63 0D 0A 09 6C    0: call crtc...l
01A960:  64 20 62 63 2C 26 30 43 30 43 3A 20 63 61 6C 6C    d bc,&0C0C: call
01A970:  20 63 72 74 63 0D 0A 09 6C 64 20 62 63 2C 26 30     crtc...ld bc,&0
01A980:  44 34 30 3A 20 63 61 6C 6C 20 63 72 74 63 0D 0A    D40: call crtc..
01A990:  0D 0A 09 6C 64 20 68 6C 2C 31 30 2A 39 36 2B 26    ...ld hl,10*96+&
01A9A0:  38 30 3A 20 6C 64 20 64 2C 68 3A 20 6C 64 20 65    80: ld d,h: ld e
01A9B0:  2C 6C 3A 20 69 6E 63 20 64 65 3A 20 3B 6C 64 20    ,l: inc de: ;ld 
01A9C0:  28 68 6C 29 2C 32 35 35 3A 20 6C 64 20 62 63 2C    (hl),255: ld bc,
01A9D0:  39 35 3A 20 3B 6C 64 69 72 0D 0A 09 6C 64 20 68    95: ;ldir...ld h
01A9E0:  6C 2C 31 38 2A 39 36 2B 26 38 30 3A 20 6C 64 20    l,18*96+&80: ld 
01A9F0:  64 2C 68 3A 20 6C 64 20 65 2C 6C 3A 20 69 6E 63    d,h: ld e,l: inc
01AA00:  74 70 69 63 29 2C 61 3A 20 6C 64 20 61 2C 34 3A    tpic),a: ld a,4:
01AA10:  20 72 65 74 0D 0A 2E 77 61 6C 6B 5F 6C 09 6C 64     ret...walk_l.ld
01AA20:  20 68 6C 2C 61 6E 69 5F 78 3A 64 65 63 20 28 68     hl,ani_x:dec (h
01AA30:  6C 29 3A 20 69 6E 63 20 64 65 3A 6C 64 20 28 61    l): inc de:ld (a
01AA40:  6E 69 5F 63 29 2C 64 65 3A 20 69 6E 63 20 61 3A    ni_c),de: inc a:
01AA50:  61 6E 64 20 33 3A 6F 72 20 34 3A 6C 64 20 28 63    and 3:or 4:ld (c
01AA60:  61 74 70 69 63 29 2C 61 3A 20 6C 64 20 61 2C 34    atpic),a: ld a,4
01AA70:  3A 20 72 65 74 0D 0A 2E 6C 69 66 74 5F 64 09 6C    : ret...lift_d.l
01AA80:  64 20 68 6C 2C 61 6E 69 5F 79 3A 69 6E 63 20 28    d hl,ani_y:inc (
01AA90:  68 6C 29 3A 20 69 6E 63 20 64 65 3A 6C 64 20 28    hl): inc de:ld (
01AAA0:  61 6E 69 5F 63 29 2C 64 65 3A 20 6C 64 20 61 2C    ani_c),de: ld a,
01AAB0:  38 3A 20 20 20 20 20 20 20 20 20 20 6C 64 20 28    8:          ld (
01AAC0:  63 61 74 70 69 63 29 2C 61 3A 20 6C 64 20 61 2C    catpic),a: ld a,
01AAD0:  31 3A 20 72 65 74 0D 0A 2E 6C 69 66 74 5F 75 09    1: ret...lift_u.
01AAE0:  6C 64 20 68 6C 2C 61 6E 69 5F 79 3A 64 65 63 20    ld hl,ani_y:dec 
01AAF0:  28 68 6C 29 3A 20 69 6E 63 20 64 65 3A 6C 64 20    (hl): inc de:ld 
01AB00:  28 61 6E 69 5F 63 29 2C 64 65 3A 20 6C 64 20 61    (ani_c),de: ld a
01AB10:  2C 38 3A 20 20 20 20 20 20 20 20 20 20 6C 64 20    ,8:          ld 
01AB20:  28 63 61 74 70 69 63 29 2C 61 3A 20 6C 64 20 61    (catpic),a: ld a
01AB30:  2C 31 3A 20 72 65 74 0D 0A 2E 75 70 64 5F 72 73    ,1: ret...upd_rs
01AB40:  09 09 09 20 20 20 20 20 6C 64 20 64 65 2C 30 3A    ...     ld de,0:
01AB50:  6C 64 20 28 61 6E 69 5F 63 29 2C 64 65 3A 20 6A    ld (ani_c),de: j
01AB60:  72 20 75 70 64 5F 6C 70 0D 0A 0D 0A 09 3B 2A 2A    r upd_lp.....;**
01AB70:  2A 20 53 55 42 52 09 53 70 72 69 74 65 2D 64 69    * SUBR.Sprite-di
01AB80:  73 70 6C 61 79 20 72 6F 75 74 69 6E 65 0D 0A 09    splay routine...
01AB90:  3B 09 09 41 20 3D 20 68 65 69 67 68 74 2C 20 48    ;..A = height, H
01ABA0:  4C 20 3D 20 73 6F 75 72 63 65 2C 20 44 45 20 3D    L = source, DE =
01ABB0:  20 64 65 73 74 69 6E 61 74 69 6F 6E 0D 0A 09 3B     destination...;
01ABC0:  09 09 70 75 74 73 20 6F 6E 65 20 62 6C 61 6E 6B    ..puts one blank
01ABD0:  20 62 79 74 65 20 65 69 74 68 65 72 20 73 69 64     byte either sid
01ABE0:  65 0D 0A 0D 0A 2E 73 70 72 69 74 65 09 65 78 20    e.....sprite.ex 
01ABF0:  64 65 2C 68 6C 3A 20 6C 64 20 28 68 6C 29 2C 30    de,hl: ld (hl),0
01AC00:  20 64 65 3A 20 3B 6C 64 20 28 68 6C 29 2C 32 35     de: ;ld (hl),25
01AC10:  35 3A 20 6C 64 20 62 63 2C 39 35 3A 20 3B 6C 64    5: ld bc,95: ;ld
01AC20:  69 72 0D 0A 0D 0A 09 3B 26 34 34 32 30 20 2D 20    ir.....;&4420 - 
01AC30:  73 74 61 72 74 20 6F 66 20 66 69 72 73 74 20 72    start of first r
01AC40:  6F 77 09 2D 20 26 34 34 37 46 0D 0A 09 3B 26 34    ow.- &447F...;&4
01AC50:  34 38 30 20 2D 20 73 74 61 72 74 20 6F 66 20 73    480 - start of s
01AC60:  65 63 6F 6E 64 20 72 6F 77 09 2D 20 26 34 34 44    econd row.- &44D
01AC70:  46 0D 0A 09 3B 26 34 34 45 30 20 2D 20 73 74 61    F...;&44E0 - sta
01AC80:  72 74 20 6F 66 20 66 72 65 65 20 6D 65 6D 6F 72    rt of free memor
01AC90:  79 0D 0A 0D 0A 09 64 69 3A 20 6C 64 20 68 6C 2C    y.....di: ld hl,
01ACA0:  28 26 33 38 29 3A 20 6C 64 20 28 72 33 38 29 2C    (&38): ld (r38),
01ACB0:  68 6C 0D 0A 09 20 20 20 20 6C 64 20 68 6C 2C 26    hl...    ld hl,&
01ACC0:  43 39 46 42 3A 20 6C 64 20 28 26 33 38 29 2C 68    C9FB: ld (&38),h
01ACD0:  6C 3A 20 65 69 0D 0A 0D 0A 09 6C 64 20 65 2C 31    l: ei.....ld e,1
01ACE0:  3A 20 63 61 6C 6C 20 6D 75 73 69 63 0D 0A 0D 0A    : call music....
01ACF0:  2E 74 65 73 74 6C 70 09 6C 64 20 62 2C 26 46 35    .testlp.ld b,&F5
01AD00:  0D 0A 09 69 6E 20 61 2C 28 63 29 3A 20 72 72 61    ...in a,(c): rra
01AD10:  3A 20 6A 72 20 6E 63 2C 74 65 73 74 6C 70 0D 0A    : jr nc,testlp..
01AD20:  09 6C 64 20 62 63 2C 26 37 46 30 30 3A 20 6C 64    .ld bc,&7F00: ld
01AD30:  20 61 2C 26 35 34 3A 20 6F 75 74 20 28 63 29 2C     a,&54: out (c),
01AD40:  63 3A 20 6F 75 74 20 28 63 29 2C 61 0D 0A 0D 0A    c: out (c),a....
01AD50:  09 63 61 6C 6C 20 73 63 72 6F 6C 6C 0D 0A 2E 63    .call scroll...c
01AD60:  6F 75 6E 74 72 09 6C 64 20 61 2C 31 3A 20 64 65    ountr.ld a,1: de
01AD70:  63 20 61 3A 20 6A 72 20 6E 7A 2C 6E 6F 61 6E 69    c a: jr nz,noani
01AD80:  6D 0D 0A 09 63 61 6C 6C 20 64 69 73 70 0D 0A 09    m...call disp...
01AD90:  63 61 6C 6C 20 75 70 64 61 74 65 0D 0A 2E 6E 6F    call update...no
01ADA0:  61 6E 69 6D 09 6C 64 20 28 63 6F 75 6E 74 72 2B    anim.ld (countr+
01ADB0:  31 29 2C 61 0D 0A 09 63 61 6C 6C 20 6D 77 63 61    1),a...call mwca
01ADC0:  6C 63 0D 0A 09 63 61 6C 6C 20 6D 75 73 69 63 2B    lc...call music+
01ADD0:  33 0D 0A 0D 0A 09 6C 64 20 62 63 2C 26 37 46 30    3.....ld bc,&7F0
01ADE0:  30 3A 20 6C 64 20 61 2C 26 34 43 3A 20 6F 75 74    0: ld a,&4C: out
01ADF0:  20 28 63 29 2C 63 3A 20 6F 75 74 20 28 63 29 2C     (c),c: out (c),
01AE00:  3A 20 69 6E 63 20 68 6C 3A 20 65 78 20 64 65 2C    : inc hl: ex de,
01AE10:  68 6C 0D 0A 09 6C 64 69 3A 6C 64 69 3A 6C 64 69    hl...ldi:ldi:ldi
01AE20:  3A 6C 64 69 3A 6C 64 69 3A 6C 64 69 3A 6C 64 69    :ldi:ldi:ldi:ldi
01AE30:  3A 6C 64 69 3A 6C 64 69 3A 6C 64 69 3A 6C 64 69    :ldi:ldi:ldi:ldi
01AE40:  3A 6C 64 69 0D 0A 09 65 78 20 64 65 2C 68 6C 3A    :ldi...ex de,hl:
01AE50:  20 6C 64 20 28 68 6C 29 2C 30 0D 0A 09 6C 64 20     ld (hl),0...ld 
01AE60:  62 63 2C 26 37 46 33 3A 20 61 64 64 20 68 6C 2C    bc,&7F3: add hl,
01AE70:  62 63 3A 20 62 69 74 20 37 2C 68 3A 20 6A 72 20    bc: bit 7,h: jr 
01AE80:  7A 2C 73 70 72 6E 6F 63 0D 0A 09 6C 64 20 62 63    z,sprnoc...ld bc
01AE90:  2C 26 43 30 36 30 3A 20 61 64 64 20 68 6C 2C 62    ,&C060: add hl,b
01AEA0:  63 0D 0A 2E 73 70 72 6E 6F 63 09 65 78 20 64 65    c...sprnoc.ex de
01AEB0:  2C 68 6C 3A 20 64 65 63 20 61 3A 20 6A 72 20 6E    ,hl: dec a: jr n
01AEC0:  7A 2C 73 70 72 69 74 65 0D 0A 09 72 65 74 0D 0A    z,sprite...ret..
01AED0:  0D 0A 09 3B 2A 2A 2A 20 56 41 52 49 09 41 6E 69    ...;*** VARI.Ani
01AEE0:  6D 61 74 69 6F 6E 20 76 61 72 69 61 62 6C 65 73    mation variables
01AEF0:  0D 0A 0D 0A 2E 61 6E 69 5F 78 09 64 62 20 30 09    .....ani_x.db 0.
01AF00:  09 09 09 09 3B 50 6F 73 69 74 69 6F 6E 20 28 30    ....;Position (0
01AF10:  2D 37 39 29 0D 0A 2E 61 6E 69 5F 79 09 64 62 20    -79)...ani_y.db 
01AF20:  30 09 09 09 09 09 3B 52 6F 77 20 28 30 2C 20 31    0.....;Row (0, 1
01AF30:  2D 36 33 2C 20 36 34 29 0D 0A 2E 61 6E 69 5F 63    -63, 64)...ani_c
01AF40:  09 64 77 20 30 09 09 09 09 09 3B 43 6F 75 6E 74    .dw 0.....;Count
01AF50:  65 72 20 28 30 2D 32 38 37 29 0D 0A 2E 63 61 74    er (0-287)...cat
01AF60:  70 69 63 09 64 62 20 30 09 09 09 09 09 3B 43 75    pic.db 0.....;Cu
01AF70:  72 72 65 6E 74 20 66 72 61 6D 65 20 6F 66 20 70    rrent frame of p
01AF80:  69 63 74 75 72 65 0D 0A 0D 0A 09 3B 2D 2D 2D 2D    icture.....;----
01AF90:  2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D    ----------------
01AFA0:  2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 20 73 63 72 6F 6C    ---------- scrol
01AFB0:  6C 20 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D    l --------------
01AFC0:  2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D    ----------------
01AFD0:  2D 2D 2D 0D 0A 0D 0A 09 3B 2A 2A 2A 20 52 4F 55    ---.....;*** ROU
01AFE0:  54 09 53 63 72 6F 6C 6C 69 6E 67 20 6D 65 73 73    T.Scrolling mess
01AFF0:  61 67 65 20 68 61 6E 64 6C 65 72 0D 0A 0D 0A 2E    age handler.....
01B000:  61 0D 0A 2E 6E 6F 72 73 74 74 09 6A 70 20 74 65    a...norstt.jp te
01B010:  73 74 6C 70 0D 0A 0D 0A 2E 72 33 38 09 64 77 20    stlp.....r38.dw 
01B020:  30 0D 0A 0D 0A 09 63 61 6C 6C 20 26 42 44 31 39    0.....call &BD19
01B030:  0D 0A 09 63 61 6C 6C 20 26 42 42 30 39 3A 20 6A    ...call &BB09: j
01B040:  72 20 6E 63 2C 74 65 73 74 6C 70 0D 0A 0D 0A 09    r nc,testlp.....
01B050:  63 61 6C 6C 20 6D 75 73 69 63 2B 36 0D 0A 09 6C    call music+6...l
01B060:  64 20 62 63 2C 26 30 37 31 45 3A 20 63 61 6C 6C    d bc,&071E: call
01B070:  20 63 72 74 63 0D 0A 09 6C 64 20 62 63 2C 26 30     crtc...ld bc,&0
01B080:  36 31 39 3A 20 63 61 6C 6C 20 63 72 74 63 0D 0A    619: call crtc..
01B090:  09 6C 64 20 62 63 2C 26 30 32 32 45 3A 20 63 61    .ld bc,&022E: ca
01B0A0:  6C 6C 20 63 72 74 63 0D 0A 09 6C 64 20 62 63 2C    ll crtc...ld bc,
01B0B0:  26 30 31 32 38 3A 20 63 61 6C 6C 20 63 72 74 63    &0128: call crtc
01B0C0:  0D 0A 09 6C 64 20 62 63 2C 26 30 43 33 30 3A 20    ...ld bc,&0C30: 
01B0D0:  63 61 6C 6C 20 63 72 74 63 0D 0A 09 6C 64 20 62    call crtc...ld b
01B0E0:  63 2C 26 30 44 30 30 3A 20 63 61 6C 6C 20 63 72    c,&0D00: call cr
01B0F0:  74 63 0D 0A 0D 0A 09 6C 64 20 61 2C 32 3A 20 6A    tc.....ld a,2: j
01B100:  70 20 26 42 43 30 45 0D 0A 0D 0A 09 3B 2D 2D 2D    p &BC0E.....;---
01B110:  2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D    ----------------
01B120:  2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 20 61 6E    ------------- an
01B130:  69 6D 61 74 69 6F 6E 20 2D 2D 2D 2D 2D 2D 2D 2D    imation --------
01B140:  2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D    ----------------
01B150:  2D 2D 2D 2D 0D 0A 0D 0A 09 3B 2A 2A 2A 20 52 4F    ----.....;*** RO
01B160:  55 54 09 44 69 73 70 6C 61 79 20 73 70 72 69 74    UT.Display sprit
01B170:  65 20 69 6E 20 63 6F 72 72 65 63 74 20 70 6F 73    e in correct pos
01B180:  69 74 69 6F 6E 0D 0A 0D 0A 2E 64 69 73 70 09 6C    ition.....disp.l
01B190:  64 20 61 2C 28 61 6E 69 5F 79 29 3A 20 63 61 6C    d a,(ani_y): cal
01B1A0:  6C 20 73 63 72 61 64 64 09 09 09 3B 47 65 74 20    l scradd...;Get 
01B1B0:  73 63 72 65 65 6E 20 61 64 64 72 65 73 73 0D 0A    screen address..
01B1C0:  09 6C 64 20 61 2C 28 61 6E 69 5F 78 29 3A 20 6C    .ld a,(ani_x): l
01B1D0:  64 20 65 2C 61 3A 20 6C 64 20 64 2C 30 3A 20 61    d e,a: ld d,0: a
01B1E0:  64 64 20 68 6C 2C 64 65 09 09 3B 41 64 64 20 78    dd hl,de..;Add x
01B1F0:  20 70 6F 73 69 74 69 6F 6E 0D 0A 09 6C 64 20 64     position...ld d
01B200:  73 63 72 6F 6C 6C 09 6C 64 20 61 2C 28 74 65 78    scroll.ld a,(tex
01B210:  74 70 74 29 3A 20 6F 72 20 61 3A 20 6A 72 20 7A    tpt): or a: jr z
01B220:  2C 6E 65 77 0D 0A 09 6C 64 20 68 6C 2C 28 66 6F    ,new...ld hl,(fo
01B230:  6E 74 61 64 29 3A 20 6A 72 20 73 63 72 6F 6C 63    ntad): jr scrolc
01B240:  0D 0A 0D 0A 2E 6E 65 77 09 6C 64 20 68 6C 2C 28    .....new.ld hl,(
01B250:  74 65 78 74 61 64 29 0D 0A 09 6C 64 20 61 2C 28    textad)...ld a,(
01B260:  68 6C 29 3A 20 6F 72 20 61 3A 20 6A 72 20 6E 7A    hl): or a: jr nz
01B270:  2C 6E 65 77 63 6F 6B 0D 0A 09 6C 64 20 68 6C 2C    ,newcok...ld hl,
01B280:  74 65 78 74 3A 20 6C 64 20 61 2C 28 68 6C 29 0D    text: ld a,(hl).
01B290:  0A 2E 6E 65 77 63 6F 6B 09 69 6E 63 20 68 6C 3A    ..newcok.inc hl:
01B2A0:  20 6C 64 20 28 74 65 78 74 61 64 29 2C 68 6C 0D     ld (textad),hl.
01B2B0:  0A 09 63 61 6C 6C 20 63 68 61 72 61 64 0D 0A 0D    ..call charad...
01B2C0:  0A 2E 73 63 72 6F 6C 63 09 70 75 73 68 20 68 6C    ..scrolc.push hl
01B2D0:  0D 0A 09 20 6C 64 20 64 65 2C 26 34 34 37 46 3A    ... ld de,&447F:
01B2E0:  20 63 61 6C 6C 20 72 6F 77 0D 0A 09 20 6C 64 20     call row... ld 
01B2F0:  64 65 2C 26 34 34 44 46 3A 20 63 61 6C 6C 20 72    de,&44DF: call r
01B300:  6F 77 0D 0A 09 70 6F 70 20 68 6C 3A 20 69 6E 63    ow...pop hl: inc
01B310:  20 68 6C 3A 20 6C 64 20 28 66 6F 6E 74 61 64 29     hl: ld (fontad)
01B320:  2C 68 6C 0D 0A 09 63 61 6C 6C 20 64 73 63 72 6F    ,hl...call dscro
01B330:  6C 0D 0A 09 6C 64 20 61 2C 28 74 65 78 74 70 74    l...ld a,(textpt
01B340:  29 3A 20 69 6E 63 20 61 3A 20 61 6E 64 20 33 0D    ): inc a: and 3.
01B350:  0A 09 6C 64 20 28 74 65 78 74 70 74 29 2C 61 3A    ..ld (textpt),a:
01B360:  20 72 65 74 0D 0A 0D 0A 09 3B 2D 2D 2D 20 73 75     ret.....;--- su
01B370:  62 72 09 43 61 6C 63 75 6C 61 74 65 20 63 68 61    br.Calculate cha
01B380:  72 61 63 74 65 72 20 61 64 64 72 65 73 73 20 28    racter address (
01B390:  41 20 2D 3E 20 48 4C 29 0D 0A 0D 0A 2E 63 68 61    A -> HL).....cha
01B3A0:  72 61 64 09 73 75 62 20 33 32 3A 20 6C 64 20 6C    rad.sub 32: ld l
01B3B0:  2C 61 3A 20 6C 64 20 68 2C 30 0D 0A 09 61 64 64    ,a: ld h,0...add
01B3C0:  20 68 6C 2C 68 6C 3A 20 61 64 64 20 68 6C 2C 68     hl,hl: add hl,h
01B3D0:  6C 3A 20 61 64 64 20 68 6C 2C 68 6C 0D 0A 09 61    l: add hl,hl...a
01B3E0:  64 64 20 68 6C 2C 68 6C 3A 20 61 64 64 20 68 6C    dd hl,hl: add hl
01B3F0:  2C 68 6C 3A 20 61 64 64 20 68 6C 2C 68 6C 0D 0A    ,hl: add hl,hl..
01B400:  65 2C 74 6F 70 6C 6E 20 3A 20 61 64 64 20 68 6C    e,topln : add hl
01B410:  2C 64 65 09 09 09 09 3B 41 64 64 20 62 61 73 65    ,de....;Add base
01B420:  20 61 64 64 72 65 73 73 0D 0A 0D 0A 09 70 75 73     address.....pus
01B430:  68 20 68 6C 09 09 09 09 09 09 3B 47 65 74 20 73    h hl......;Get s
01B440:  70 72 69 74 65 20 61 64 64 72 65 73 73 0D 0A 09    prite address...
01B450:  20 6C 64 20 68 6C 2C 28 63 61 74 70 69 63 29 3A     ld hl,(catpic):
01B460:  20 6C 64 20 68 2C 30 09 09 09 09 3B 20 7C 0D 0A     ld h,0....; |..
01B470:  09 20 61 64 64 20 68 6C 2C 68 6C 3A 20 61 64 64    . add hl,hl: add
01B480:  20 68 6C 2C 68 6C 09 09 09 09 3B 20 7C 0D 0A 09     hl,hl....; |...
01B490:  20 6C 64 20 64 65 2C 70 69 63 74 62 6C 3A 20 61     ld de,pictbl: a
01B4A0:  64 64 20 68 6C 2C 64 65 09 09 09 3B 20 7C 0D 0A    dd hl,de...; |..
01B4B0:  09 20 6C 64 20 65 2C 28 68 6C 29 3A 20 69 6E 63    . ld e,(hl): inc
01B4C0:  20 68 6C 09 09 09 09 3B 20 7C 0D 0A 09 20 6C 64     hl....; |... ld
01B4D0:  20 64 2C 28 68 6C 29 3A 20 69 6E 63 20 68 6C 09     d,(hl): inc hl.
01B4E0:  09 09 09 3B 20 7C 0D 0A 09 20 6C 64 20 61 2C 28    ...; |... ld a,(
01B4F0:  68 6C 29 09 09 09 09 09 3B 20 7C 0D 0A 09 70 6F    hl).....; |...po
01B500:  70 20 68 6C 3A 20 65 78 20 64 65 2C 68 6C 0D 0A    p hl: ex de,hl..
01B510:  09 6A 70 20 73 70 72 69 74 65 0D 0A 0D 0A 2E 70    .jp sprite.....p
01B520:  69 63 74 62 6C 09 64 77 20 63 61 74 31 72 2C 32    ictbl.dw cat1r,2
01B530:  35 2C 63 61 74 32 72 2C 32 35 2C 63 61 74 33 72    5,cat2r,25,cat3r
01B540:  2C 32 35 2C 63 61 74 32 72 2C 32 35 0D 0A 09 64    ,25,cat2r,25...d
01B550:  77 20 63 61 74 31 6C 2C 32 35 2C 63 61 74 32 6C    w cat1l,25,cat2l
01B560:  2C 32 35 2C 63 61 74 33 6C 2C 32 35 2C 63 61 74    ,25,cat3l,25,cat
01B570:  32 6C 2C 32 35 0D 0A 09 64 77 20 63 61 74 73 74    2l,25...dw catst
01B580:  2C 32 31 0D 0A 0D 0A 09 3B 2D 2D 2D 20 73 75 62    ,21.....;--- sub
01B590:  72 09 43 6F 6E 76 65 72 74 20 70 69 78 65 6C 20    r.Convert pixel 
01B5A0:  6C 69 6E 65 20 6E 75 6D 62 65 72 20 41 20 74 6F    line number A to
01B5B0:  20 73 63 72 65 65 6E 20 61 64 64 72 65 73 73 20     screen address 
01B5C0:  48 4C 0D 0A 0D 0A 2E 73 63 72 61 64 64 09 6C 64    HL.....scradd.ld
01B5D0:  20 63 2C 61 3A 20 61 6E 64 20 26 46 38 09 09 09     c,a: and &F8...
01B5E0:  09 09 3B 31 32 2A 28 72 6F 77 5C 38 29 20 66 6F    ..;12*(row\8) fo
01B5F0:  72 20 63 68 61 72 72 6F 77 73 0D 0A 09 6C 64 20    r charrows...ld 
01B600:  54 72 61 63 6B 2D 49 6E 66 6F 0D 0A 00 00 00 00    Track-Info......
01B610:  17 00 01 00 02 09 4E E5 17 00 C3 02 00 00 00 02    ......N.........
01B620:  17 00 C8 02 00 00 00 02 17 00 C4 02 00 00 00 02    ................
01B630:  17 00 C9 02 00 00 00 02 17 00 C5 02 00 00 00 02    ................
01B640:  17 00 C1 02 00 00 00 02 17 00 C6 02 00 00 00 02    ................
01B650:  17 00 C2 02 00 00 00 02 17 00 C7 02 00 00 00 02    ................
01B660:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
01B670:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
01B680:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
01B690:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
01B6A0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
01B6B0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
01B6C0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
01B6D0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
01B6E0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
01B6F0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
01B700:  0D 0A 0D 0A 09 3B 2A 2A 2A 20 53 55 42 52 09 43    .....;*** SUBR.C
01B710:  6F 70 79 20 66 72 6F 6D 20 26 43 30 30 30 20 73    opy from &C000 s
01B720:  63 72 65 65 6E 20 28 48 4C 29 20 74 6F 20 6F 76    creen (HL) to ov
01B730:  65 72 73 63 61 6E 20 73 63 72 65 65 6E 20 28 44    erscan screen (D
01B740:  45 29 0D 0A 0D 0A 2E 63 73 74 73 5F 72 09 6C 64    E).....csts_r.ld
01B750:  20 61 2C 38 0D 0A 2E 63 73 74 73 5F 6C 09 6C 64     a,8...csts_l.ld
01B760:  20 62 63 2C 38 30 3A 20 6C 64 69 72 0D 0A 09 6C     bc,80: ldir...l
01B770:  64 20 62 63 2C 26 37 42 30 3A 20 61 64 64 20 68    d bc,&7B0: add h
01B780:  6C 2C 62 63 3A 20 65 78 20 64 65 2C 68 6C 0D 0A    l,bc: ex de,hl..
01B790:  09 6C 64 20 62 63 2C 26 37 42 30 3A 20 61 64 64    .ld bc,&7B0: add
01B7A0:  20 68 6C 2C 62 63 3A 20 65 78 20 64 65 2C 68 6C     hl,bc: ex de,hl
01B7B0:  0D 0A 09 64 65 63 20 61 3A 20 6A 72 20 6E 7A 2C    ...dec a: jr nz,
01B7C0:  63 73 74 73 5F 6C 3A 20 72 65 74 0D 0A 0D 0A 09    csts_l: ret.....
01B7D0:  3B 2A 2A 2A 20 53 55 42 52 09 43 52 54 43 20 72    ;*** SUBR.CRTC r
01B7E0:  65 67 69 73 74 65 72 20 73 65 74 0D 0A 0D 0A 2E    egister set.....
01B7F0:  63 72 74 63 09 6C 64 20 61 2C 62 0D 0A 09 6C 64    crtc.ld a,b...ld
01B800:  20 62 2C 26 42 43 3A 20 6F 75 74 20 28 63 29 2C     b,&BC: out (c),
01B810:  61 0D 0A 09 6C 64 20 62 2C 26 42 44 3A 20 6F 75    a...ld b,&BD: ou
01B820:  74 20 28 63 29 2C 63 0D 0A 09 72 65 74 0D 0A 0D    t (c),c...ret...
01B830:  0A 09 3B 2A 2A 2A 20 56 41 52 49 09 53 63 72 6F    ..;*** VARI.Scro
01B840:  6C 6C 69 6E 67 20 6D 65 73 73 61 67 65 0D 0A 0D    lling message...
01B850:  0A 2E 74 65 78 74 61 64 09 64 77 20 74 65 78 74    ..textad.dw text
01B860:  0D 0A 2E 66 6F 6E 74 61 64 09 64 77 20 30 0D 0A    ...fontad.dw 0..
01B870:  2E 74 65 78 74 70 74 09 64 62 20 30 0D 0A 0D 0A    .textpt.db 0....
01B880:  09 3B 2A 2A 2A 20 44 41 54 41 09 4D 69 73 63 65    .;*** DATA.Misce
01B890:  6C 6C 61 6E 65 6F 75 73 0D 0A 0D 0A 2E 66 6E 61    llaneous.....fna
01B8A0:  6D 65 09 64 62 20 22 43 41 54 53 20 20 20 20 2E    me.db "CATS    .
01B8B0:  42 49 4E 22 0D 0A 2E 73 6E 61 6D 65 09 64 62 20    BIN"...sname.db 
01B8C0:  22 53 54 53 20 20 20 20 20 2E 53 43 52 22 0D 0A    "STS     .SCR"..
01B8D0:  2E 6C 6E 61 6D 65 09 64 62 20 22 4E 45 57 46 4F    .lname.db "NEWFO
01B8E0:  4E 54 20 2E 42 49 4E 22 0D 0A 2E 6D 6E 61 6D 65    NT .BIN"...mname
01B8F0:  09 64 62 20 22 4F 42 4C 41 44 49 20 20 2E 42 49    .db "OBLADI  .BI
01B900:  09 09 09 3B 20 7C 0D 0A 0D 0A 09 6C 64 20 68 6C    ...; |.....ld hl
01B910:  2C 28 6D 74 70 6F 73 29 3A 20 6C 64 20 61 2C 28    ,(mtpos): ld a,(
01B920:  68 6C 29 09 09 3B 59 65 73 2C 20 73 6F 20 67 65    hl)..;Yes, so ge
01B930:  74 20 6E 65 77 20 63 68 61 72 61 63 74 65 72 0D    t new character.
01B940:  0A 09 3A 20 6F 72 20 61 3A 20 6A 72 20 6E 7A 2C    ..: or a: jr nz,
01B950:  6D 77 6E 77 6F 6B 09 09 09 3B 20 7C 0D 0A 09 3A    mwnwok...; |...:
01B960:  20 6C 64 20 68 6C 2C 6D 74 65 78 74 20 20 3A 20     ld hl,mtext  : 
01B970:  6C 64 20 61 2C 28 68 6C 29 09 09 3B 20 7C 0D 0A    ld a,(hl)..; |..
01B980:  0D 0A 2E 6D 77 6E 77 6F 6B 09 65 78 20 64 65 2C    ...mwnwok.ex de,
01B990:  68 6C 3A 20 63 61 6C 6C 20 63 68 61 72 61 64 3A    hl: call charad:
01B9A0:  20 6C 64 20 28 6C 73 70 72 29 2C 68 6C 3A 20 65     ld (lspr),hl: e
01B9B0:  78 20 64 65 2C 68 6C 3A 20 69 6E 63 20 68 6C 3A    x de,hl: inc hl:
01B9C0:  20 6C 64 20 61 2C 28 68 6C 29 0D 0A 09 65 78 20     ld a,(hl)...ex 
01B9D0:  64 65 2C 68 6C 3A 20 63 61 6C 6C 20 63 68 61 72    de,hl: call char
01B9E0:  61 64 3A 20 6C 64 20 28 72 73 70 72 29 2C 68 6C    ad: ld (rspr),hl
01B9F0:  3A 20 65 78 20 64 65 2C 68 6C 3A 20 69 6E 63 20    : ex de,hl: inc 
01BA00:  68 6C 3A 20 6C 64 20 28 6D 74 70 6F 73 29 2C 68    hl: ld (mtpos),h
01BA10:  6C 0D 0A 0D 0A 09 6C 64 20 61 2C 26 46 46 3A 20    l.....ld a,&FF: 
01BA20:  6C 64 20 28 62 6F 75 6E 63 78 29 2C 61 09 09 09    ld (bouncx),a...
01BA30:  3B 52 65 73 65 74 20 78 20 70 6F 73 69 74 69 6F    ;Reset x positio
01BA40:  6E 0D 0A 09 6C 64 20 68 6C 2C 28 73 6E 70 6F 73    n...ld hl,(snpos
01BA50:  29 3A 20 69 6E 63 20 68 6C 09 09 09 3B 53 74 61    ): inc hl...;Sta
01BA60:  72 74 20 6E 65 77 20 70 61 74 68 0D 0A 09 6C 64    rt new path...ld
01BA70:  20 61 2C 28 68 6C 29 3A 20 6F 72 20 61 3A 20 6A     a,(hl): or a: j
01BA80:  72 20 6E 7A 2C 73 6E 65 78 69 74 09 09 3B 20 7C    r nz,snexit..; |
01BA90:  0D 0A 09 20 20 20 20 6C 64 20 68 6C 2C 73 69 6E    ...    ld hl,sin
01BAA0:  65 73 3A 20 6A 72 20 20 20 20 73 6E 65 78 69 74    es: jr    snexit
01BAB0:  09 09 3B 20 7C 0D 0A 0D 0A 2E 73 6E 65 78 69 73    ..; |.....snexis
01BAC0:  09 63 61 6C 6C 20 73 74 61 67 65 32 3A 20 6C 64    .call stage2: ld
01BAD0:  20 68 6C 2C 28 73 6E 70 6F 73 29 09 09 3B 52 65     hl,(snpos)..;Re
01BAE0:  6D 6F 76 65 20 73 70 72 69 74 65 73 20 69 66 20    move sprites if 
01BAF0:  6E 6F 74 20 6C 61 73 74 0D 0A 2E 73 6E 65 78 69    not last...snexi
01BB00:  4E 22 0D 0A 0D 0A 09 3B 2D 2D 2D 2D 2D 2D 2D 2D    N".....;--------
01BB10:  2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D    ----------------
01BB20:  2D 2D 2D 2D 2D 20 6D 65 73 73 61 67 65 20 77 72    ----- message wr
01BB30:  69 74 65 72 20 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D    iter -----------
01BB40:  2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 0D    ---------------.
01BB50:  0A 0D 0A 09 3B 2A 2A 2A 20 44 41 54 41 09 53 69    ....;*** DATA.Si
01BB60:  6E 65 20 74 61 62 6C 65 73 0D 0A 0D 0A 09 64 62    ne tables.....db
01BB70:  20 30 0D 0A 2E 73 69 6E 65 73 09 64 62 20 34 38     0...sines.db 48
01BB80:  2C 34 30 2C 33 32 2C 32 35 2C 31 39 2C 31 33 2C    ,40,32,25,19,13,
01BB90:  38 2C 34 2C 32 2C 31 2C 31 2C 32 2C 34 2C 38 2C    8,4,2,1,1,2,4,8,
01BBA0:  31 33 2C 31 39 2C 32 35 2C 33 32 2C 34 30 2C 34    13,19,25,32,40,4
01BBB0:  38 2C 34 30 2C 33 32 2C 32 35 2C 31 39 2C 31 33    8,40,32,25,19,13
01BBC0:  2C 38 2C 34 2C 32 2C 31 2C 31 2C 32 2C 34 2C 38    ,8,4,2,1,1,2,4,8
01BBD0:  2C 31 33 2C 31 39 2C 32 35 2C 33 32 2C 34 30 2C    ,13,19,25,32,40,
01BBE0:  34 38 2C 34 30 2C 33 32 2C 32 35 2C 31 39 2C 31    48,40,32,25,19,1
01BBF0:  33 2C 38 2C 34 2C 32 2C 31 2C 31 2C 32 2C 34 2C    3,8,4,2,1,1,2,4,
01BC00:  38 2C 31 33 2C 31 39 2C 32 35 2C 33 32 2C 34 30    8,13,19,25,32,40
01BC10:  2C 34 38 2C 34 30 2C 33 32 2C 32 35 2C 31 39 2C    ,48,40,32,25,19,
01BC20:  31 33 2C 38 2C 34 2C 32 2C 31 2C 31 2C 32 2C 34    13,8,4,2,1,1,2,4
01BC30:  2C 38 2C 31 33 2C 31 39 2C 32 35 2C 33 32 2C 34    ,8,13,19,25,32,4
01BC40:  30 2C 34 38 2C 30 0D 0A 09 64 62 20 34 38 2C 33    0,48,0...db 48,3
01BC50:  39 2C 33 31 2C 32 34 2C 31 37 2C 31 31 2C 37 2C    9,31,24,17,11,7,
01BC60:  33 2C 31 2C 31 2C 31 2C 33 2C 37 2C 31 31 2C 31    3,1,1,1,3,7,11,1
01BC70:  37 2C 32 34 2C 33 31 2C 33 39 2C 34 38 2C 33 39    7,24,31,39,48,39
01BC80:  2C 33 31 2C 32 34 2C 31 37 2C 31 31 2C 37 2C 33    ,31,24,17,11,7,3
01BC90:  2C 31 2C 31 2C 31 2C 33 2C 37 2C 31 31 2C 31 37    ,1,1,1,3,7,11,17
01BCA0:  2C 32 34 2C 33 31 2C 33 39 2C 34 38 2C 33 39 2C    ,24,31,39,48,39,
01BCB0:  33 31 2C 32 34 2C 31 37 2C 31 31 2C 37 2C 33 2C    31,24,17,11,7,3,
01BCC0:  31 2C 31 2C 31 2C 33 2C 37 2C 31 31 2C 31 37 2C    1,1,1,3,7,11,17,
01BCD0:  32 34 2C 33 31 2C 33 39 2C 34 38 2C 33 39 2C 33    24,31,39,48,39,3
01BCE0:  31 2C 32 34 2C 31 37 2C 31 31 2C 37 2C 33 2C 31    1,24,17,11,7,3,1
01BCF0:  2C 31 2C 31 2C 33 2C 37 2C 31 31 2C 31 37 2C 32    ,1,1,3,7,11,17,2
01BD00:  74 09 6C 64 20 61 2C 28 68 6C 29 3A 20 69 6E 63    t.ld a,(hl): inc
01BD10:  20 68 6C 3A 20 6C 64 20 28 73 6E 70 6F 73 29 2C     hl: ld (snpos),
01BD20:  68 6C 09 3B 53 74 6F 72 65 20 70 6F 73 69 74 69    hl.;Store positi
01BD30:  6F 6E 20 69 6E 20 70 61 74 68 20 61 6E 64 2E 2E    on in path and..
01BD40:  2E 0D 0A 0D 0A 09 3B 2A 2A 2A 20 52 4F 55 54 09    ......;*** ROUT.
01BD50:  4D 65 73 73 61 67 65 20 77 72 69 74 65 72 20 73    Message writer s
01BD60:  74 61 67 65 20 31 20 2D 20 64 72 61 77 20 73 70    tage 1 - draw sp
01BD70:  72 69 74 65 73 0D 0A 0D 0A 2E 73 74 61 67 65 31    rites.....stage1
01BD80:  09 63 61 6C 6C 20 73 63 72 61 64 64 09 09 09 09    .call scradd....
01BD90:  3B 43 61 6C 63 75 6C 61 74 65 20 62 61 73 65 20    ;Calculate base 
01BDA0:  61 64 64 72 65 73 73 0D 0A 09 6C 64 20 62 63 2C    address...ld bc,
01BDB0:  26 38 30 3A 20 61 64 64 20 68 6C 2C 62 63 09 09    &80: add hl,bc..
01BDC0:  09 3B 20 7C 0D 0A 09 70 75 73 68 20 68 6C 09 09    .; |...push hl..
01BDD0:  09 09 09 3B 2E 2E 2E 66 6F 72 20 74 68 65 20 6C    ...;...for the l
01BDE0:  65 66 74 2D 68 61 6E 64 20 73 70 72 69 74 65 0D    eft-hand sprite.
01BDF0:  0A 09 20 6C 64 20 61 2C 28 62 6F 75 6E 63 78 29    .. ld a,(bouncx)
01BE00:  3A 20 69 6E 63 20 61 09 09 09 3B 20 7C 0D 0A 09    : inc a...; |...
01BE10:  20 6C 64 20 28 62 6F 75 6E 63 78 29 2C 61 3A 20     ld (bouncx),a: 
01BE20:  6C 64 20 65 2C 61 3A 20 6C 64 20 64 2C 30 09 09    ld e,a: ld d,0..
01BE30:  3B 20 7C 0D 0A 09 20 61 64 64 20 68 6C 2C 64 65    ; |... add hl,de
01BE40:  3A 20 6C 64 20 28 6C 65 66 74 78 29 2C 68 6C 09    : ld (leftx),hl.
01BE50:  09 3B 20 7C 0D 0A 09 70 6F 70 20 68 6C 3A 20 6C    .; |...pop hl: l
01BE60:  64 20 62 63 2C 39 32 09 09 09 3B 2E 2E 2E 61 6E    d bc,92...;...an
01BE70:  64 20 74 68 65 20 72 69 67 68 74 2D 68 61 6E 64    d the right-hand
01BE80:  20 6F 6E 65 0D 0A 09 61 64 64 20 68 6C 2C 62 63     one...add hl,bc
01BE90:  3A 20 6F 72 20 61 09 09 09 09 3B 20 7C 0D 0A 09    : or a....; |...
01BEA0:  73 62 63 20 68 6C 2C 64 65 3A 20 6C 64 20 28 72    sbc hl,de: ld (r
01BEB0:  69 67 68 74 78 29 2C 68 6C 09 09 3B 20 7C 0D 0A    ightx),hl..; |..
01BEC0:  0D 0A 09 6C 64 20 68 6C 2C 28 6C 65 66 74 78 20    ...ld hl,(leftx 
01BED0:  29 3A 20 6C 64 20 64 65 2C 73 70 72 73 74 31 3A    ): ld de,sprst1:
01BEE0:  20 63 61 6C 6C 20 73 61 76 65 09 3B 53 74 6F 72     call save.;Stor
01BEF0:  65 20 63 75 72 72 65 6E 74 20 73 63 72 65 65 6E    e current screen
01BF00:  34 2C 33 31 2C 33 39 2C 34 38 2C 30 0D 0A 09 64    4,31,39,48,0...d
01BF10:  62 20 34 38 2C 33 39 2C 33 31 2C 32 33 2C 31 36    b 48,39,31,23,16
01BF20:  2C 31 30 2C 35 2C 32 2C 31 2C 31 2C 32 2C 35 2C    ,10,5,2,1,1,2,5,
01BF30:  31 30 2C 31 36 2C 32 33 2C 33 31 2C 33 39 2C 34    10,16,23,31,39,4
01BF40:  38 2C 33 39 2C 33 31 2C 32 33 2C 31 36 2C 31 30    8,39,31,23,16,10
01BF50:  2C 35 2C 32 2C 31 2C 31 2C 32 2C 35 2C 31 30 2C    ,5,2,1,1,2,5,10,
01BF60:  31 36 2C 32 33 2C 33 31 2C 33 39 2C 34 38 2C 33    16,23,31,39,48,3
01BF70:  39 2C 33 31 2C 32 33 2C 31 36 2C 31 30 2C 35 2C    9,31,23,16,10,5,
01BF80:  32 2C 31 2C 31 2C 32 2C 35 2C 31 30 2C 31 36 2C    2,1,1,2,5,10,16,
01BF90:  32 33 2C 33 31 2C 33 39 2C 34 38 2C 33 39 2C 33    23,31,39,48,39,3
01BFA0:  31 2C 32 33 2C 31 36 2C 31 30 2C 35 2C 32 2C 31    1,23,16,10,5,2,1
01BFB0:  2C 31 2C 32 2C 35 2C 31 30 2C 31 36 2C 32 33 2C    ,1,2,5,10,16,23,
01BFC0:  33 31 2C 33 39 2C 34 38 2C 30 0D 0A 09 64 62 20    31,39,48,0...db 
01BFD0:  34 38 2C 33 38 2C 33 30 2C 32 31 2C 31 34 2C 38    48,38,30,21,14,8
01BFE0:  2C 34 2C 31 2C 31 2C 31 2C 34 2C 38 2C 31 34 2C    ,4,1,1,1,4,8,14,
01BFF0:  32 31 2C 33 30 2C 33 38 2C 34 38 2C 33 38 2C 33    21,30,38,48,38,3
01C000:  30 2C 32 31 2C 31 34 2C 38 2C 34 2C 31 2C 31 2C    0,21,14,8,4,1,1,
01C010:  31 2C 34 2C 38 2C 31 34 2C 32 31 2C 33 30 2C 33    1,4,8,14,21,30,3
01C020:  38 2C 34 38 2C 33 38 2C 33 30 2C 32 31 2C 31 34    8,48,38,30,21,14
01C030:  2C 38 2C 34 2C 31 2C 31 2C 31 2C 34 2C 38 2C 31    ,8,4,1,1,1,4,8,1
01C040:  34 2C 32 31 2C 33 30 2C 33 38 2C 34 38 2C 33 38    4,21,30,38,48,38
01C050:  2C 33 30 2C 32 31 2C 31 34 2C 38 2C 34 2C 31 2C    ,30,21,14,8,4,1,
01C060:  31 2C 31 2C 34 2C 38 2C 31 34 2C 32 31 2C 33 30    1,1,4,8,14,21,30
01C070:  2C 33 38 2C 34 38 2C 30 0D 0A 09 64 62 20 34 38    ,38,48,0...db 48
01C080:  2C 33 38 2C 32 38 2C 32 30 2C 31 33 2C 37 2C 33    ,38,28,20,13,7,3
01C090:  2C 31 2C 31 2C 33 2C 37 2C 31 33 2C 32 30 2C 32    ,1,1,3,7,13,20,2
01C0A0:  38 2C 33 38 2C 34 38 2C 33 38 2C 32 38 2C 32 30    8,38,48,38,28,20
01C0B0:  2C 31 33 2C 37 2C 33 2C 31 2C 31 2C 33 2C 37 2C    ,13,7,3,1,1,3,7,
01C0C0:  31 33 2C 32 30 2C 32 38 2C 33 38 2C 34 38 2C 33    13,20,28,38,48,3
01C0D0:  38 2C 32 38 2C 32 30 2C 31 33 2C 37 2C 33 2C 31    8,28,20,13,7,3,1
01C0E0:  2C 31 2C 33 2C 37 2C 31 33 2C 32 30 2C 32 38 2C    ,1,3,7,13,20,28,
01C0F0:  33 38 2C 34 38 2C 33 38 2C 32 38 2C 32 30 2C 31    38,48,38,28,20,1
01C100:  63 3A 6C 64 20 64 2C 61 0D 0A 09 6C 64 69 3A 09    c:ld d,a...ldi:.
01C110:  09 20 20 6C 64 20 61 2C 6C 3A 61 64 64 20 62 3A    .  ld a,l:add b:
01C120:  6C 64 20 6C 2C 61 3A 20 72 65 74 0D 0A 0D 0A 09    ld l,a: ret.....
01C130:  3B 2D 2D 2D 20 73 75 62 72 09 53 63 72 6F 6C 6C    ;--- subr.Scroll
01C140:  20 61 6C 6C 20 6C 69 6E 65 73 0D 0A 0D 0A 2E 64     all lines.....d
01C150:  73 63 72 6F 6C 09 6C 64 20 64 65 2C 26 34 34 32    scrol.ld de,&442
01C160:  30 3A 20 63 61 6C 6C 20 73 63 72 6F 6C 72 3A 20    0: call scrolr: 
01C170:  6C 64 20 64 65 2C 26 34 43 32 30 3A 20 63 61 6C    ld de,&4C20: cal
01C180:  6C 20 73 63 72 6F 6C 72 0D 0A 09 6C 64 20 64 65    l scrolr...ld de
01C190:  2C 26 35 34 32 30 3A 20 63 61 6C 6C 20 73 63 72    ,&5420: call scr
01C1A0:  6F 6C 72 3A 20 6C 64 20 64 65 2C 26 35 43 32 30    olr: ld de,&5C20
01C1B0:  3A 20 63 61 6C 6C 20 73 63 72 6F 6C 72 0D 0A 09    : call scrolr...
01C1C0:  6C 64 20 64 65 2C 26 36 34 32 30 3A 20 63 61 6C    ld de,&6420: cal
01C1D0:  6C 20 73 63 72 6F 6C 72 3A 20 6C 64 20 64 65 2C    l scrolr: ld de,
01C1E0:  26 36 43 32 30 3A 20 63 61 6C 6C 20 73 63 72 6F    &6C20: call scro
01C1F0:  6C 72 0D 0A 09 6C 64 20 64 65 2C 26 37 34 32 30    lr...ld de,&7420
01C200:  3A 20 63 61 6C 6C 20 73 63 72 6F 6C 72 3A 20 6C    : call scrolr: l
01C210:  64 20 64 65 2C 26 37 43 32 30 3A 20 63 61 6C 6C    d de,&7C20: call
01C220:  20 73 63 72 6F 6C 72 0D 0A 0D 0A 09 6C 64 20 64     scrolr.....ld d
01C230:  65 2C 26 34 34 38 30 3A 20 63 61 6C 6C 20 73 63    e,&4480: call sc
01C240:  72 6F 6C 72 3A 20 6C 64 20 64 65 2C 26 34 43 38    rolr: ld de,&4C8
01C250:  30 3A 20 63 61 6C 6C 20 73 63 72 6F 6C 72 0D 0A    0: call scrolr..
01C260:  09 6C 64 20 64 65 2C 26 35 34 38 30 3A 20 63 61    .ld de,&5480: ca
01C270:  6C 6C 20 73 63 72 6F 6C 72 3A 20 6C 64 20 64 65    ll scrolr: ld de
01C280:  2C 26 35 43 38 30 3A 20 63 61 6C 6C 20 73 63 72    ,&5C80: call scr
01C290:  6F 6C 72 0D 0A 09 6C 64 20 64 65 2C 26 36 34 38    olr...ld de,&648
01C2A0:  30 3A 20 63 61 6C 6C 20 73 63 72 6F 6C 72 3A 20    0: call scrolr: 
01C2B0:  6C 64 20 64 65 2C 26 36 43 38 30 3A 20 63 61 6C    ld de,&6C80: cal
01C2C0:  6C 20 73 63 72 6F 6C 72 0D 0A 09 6C 64 20 64 65    l scrolr...ld de
01C2D0:  2C 26 37 34 38 30 3A 20 63 61 6C 6C 20 73 63 72    ,&7480: call scr
01C2E0:  6F 6C 72 3A 20 6C 64 20 64 65 2C 26 37 43 38 30    olr: ld de,&7C80
01C2F0:  3A 20 63 61 6C 6C 20 73 63 72 6F 6C 72 0D 0A 09    : call scrolr...
01C300:  33 2C 37 2C 33 2C 31 2C 31 2C 33 2C 37 2C 31 33    3,7,3,1,1,3,7,13
01C310:  2C 32 30 2C 32 38 2C 33 38 2C 34 38 2C 30 0D 0A    ,20,28,38,48,0..
01C320:  09 64 62 20 34 38 2C 33 37 2C 32 37 2C 31 38 2C    .db 48,37,27,18,
01C330:  31 31 2C 35 2C 32 2C 31 2C 32 2C 35 2C 31 31 2C    11,5,2,1,2,5,11,
01C340:  31 38 2C 32 37 2C 33 37 2C 34 38 2C 33 37 2C 32    18,27,37,48,37,2
01C350:  37 2C 31 38 2C 31 31 2C 35 2C 32 2C 31 2C 32 2C    7,18,11,5,2,1,2,
01C360:  35 2C 31 31 2C 31 38 2C 32 37 2C 33 37 2C 34 38    5,11,18,27,37,48
01C370:  2C 33 37 2C 32 37 2C 31 38 2C 31 31 2C 35 2C 32    ,37,27,18,11,5,2
01C380:  2C 31 2C 32 2C 35 2C 31 31 2C 31 38 2C 32 37 2C    ,1,2,5,11,18,27,
01C390:  33 37 2C 34 38 2C 33 37 2C 32 37 2C 31 38 2C 31    37,48,37,27,18,1
01C3A0:  31 2C 35 2C 32 2C 31 2C 32 2C 35 2C 31 31 2C 31    1,5,2,1,2,5,11,1
01C3B0:  38 2C 32 37 2C 33 37 2C 34 38 2C 30 0D 0A 09 64    8,27,37,48,0...d
01C3C0:  62 20 34 38 2C 33 36 2C 32 36 2C 31 36 2C 39 2C    b 48,36,26,16,9,
01C3D0:  34 2C 31 2C 31 2C 34 2C 39 2C 31 36 2C 32 36 2C    4,1,1,4,9,16,26,
01C3E0:  33 36 2C 34 38 2C 33 36 2C 32 36 2C 31 36 2C 39    36,48,36,26,16,9
01C3F0:  2C 34 2C 31 2C 31 2C 34 2C 39 2C 31 36 2C 32 36    ,4,1,1,4,9,16,26
01C400:  2C 33 36 2C 34 38 2C 33 36 2C 32 36 2C 31 36 2C    ,36,48,36,26,16,
01C410:  39 2C 34 2C 31 2C 31 2C 34 2C 39 2C 31 36 2C 32    9,4,1,1,4,9,16,2
01C420:  36 2C 33 36 2C 34 38 2C 33 36 2C 32 36 2C 31 36    6,36,48,36,26,16
01C430:  2C 39 2C 34 2C 31 2C 31 2C 34 2C 39 2C 31 36 2C    ,9,4,1,1,4,9,16,
01C440:  32 36 2C 33 36 2C 34 38 2C 30 0D 0A 09 64 62 20    26,36,48,0...db 
01C450:  34 38 2C 33 35 2C 32 34 2C 31 34 2C 37 2C 32 2C    48,35,24,14,7,2,
01C460:  31 2C 32 2C 37 2C 31 34 2C 32 34 2C 33 35 2C 34    1,2,7,14,24,35,4
01C470:  38 2C 33 35 2C 32 34 2C 31 34 2C 37 2C 32 2C 31    8,35,24,14,7,2,1
01C480:  2C 32 2C 37 2C 31 34 2C 32 34 2C 33 35 2C 34 38    ,2,7,14,24,35,48
01C490:  2C 33 35 2C 32 34 2C 31 34 2C 37 2C 32 2C 31 2C    ,35,24,14,7,2,1,
01C4A0:  32 2C 37 2C 31 34 2C 32 34 2C 33 35 2C 34 38 2C    2,7,14,24,35,48,
01C4B0:  33 35 2C 32 34 2C 31 34 2C 37 2C 32 2C 31 2C 32    35,24,14,7,2,1,2
01C4C0:  2C 37 2C 31 34 2C 32 34 2C 33 35 2C 34 38 2C 30    ,7,14,24,35,48,0
01C4D0:  0D 0A 09 64 62 20 30 0D 0A 0D 0A 09 3B 2A 2A 2A    ...db 0.....;***
01C4E0:  20 56 41 52 49 09 4D 65 73 73 61 67 65 20 77 72     VARI.Message wr
01C4F0:  69 74 65 72 20 76 61 72 69 61 62 6C 65 73 0D 0A    iter variables..
01C500:  72 65 74 0D 0A 0D 0A 2E 73 63 72 6F 6C 72 09 6C    ret.....scrolr.l
01C510:  64 20 68 2C 64 3A 20 6C 64 20 6C 2C 65 3A 20 69    d h,d: ld l,e: i
01C520:  6E 63 20 68 6C 0D 0A 09 6C 64 69 3A 6C 64 69 3A    nc hl...ldi:ldi:
01C530:  6C 64 69 3A 6C 64 69 3A 6C 64 69 3A 6C 64 69 3A    ldi:ldi:ldi:ldi:
01C540:  6C 64 69 3A 6C 64 69 3A 6C 64 69 3A 6C 64 69 3A    ldi:ldi:ldi:ldi:
01C550:  6C 64 69 3A 6C 64 69 3A 6C 64 69 3A 6C 64 69 3A    ldi:ldi:ldi:ldi:
01C560:  6C 64 69 3A 6C 64 69 0D 0A 09 6C 64 69 3A 6C 64    ldi:ldi...ldi:ld
01C570:  69 3A 6C 64 69 3A 6C 64 69 3A 6C 64 69 3A 6C 64    i:ldi:ldi:ldi:ld
01C580:  69 3A 6C 64 69 3A 6C 64 69 3A 6C 64 69 3A 6C 64    i:ldi:ldi:ldi:ld
01C590:  69 3A 6C 64 69 3A 6C 64 69 3A 6C 64 69 3A 6C 64    i:ldi:ldi:ldi:ld
01C5A0:  69 3A 6C 64 69 3A 6C 64 69 0D 0A 09 6C 64 69 3A    i:ldi:ldi...ldi:
01C5B0:  6C 64 69 3A 6C 64 69 3A 6C 64 69 3A 6C 64 69 3A    ldi:ldi:ldi:ldi:
01C5C0:  6C 64 69 3A 6C 64 69 3A 6C 64 69 3A 6C 64 69 3A    ldi:ldi:ldi:ldi:
01C5D0:  6C 64 69 3A 6C 64 69 3A 6C 64 69 3A 6C 64 69 3A    ldi:ldi:ldi:ldi:
01C5E0:  6C 64 69 3A 6C 64 69 3A 6C 64 69 0D 0A 09 6C 64    ldi:ldi:ldi...ld
01C5F0:  69 3A 6C 64 69 3A 6C 64 69 3A 6C 64 69 3A 6C 64    i:ldi:ldi:ldi:ld
01C600:  69 3A 6C 64 69 3A 6C 64 69 3A 6C 64 69 3A 6C 64    i:ldi:ldi:ldi:ld
01C610:  69 3A 6C 64 69 3A 6C 64 69 3A 6C 64 69 3A 6C 64    i:ldi:ldi:ldi:ld
01C620:  69 3A 6C 64 69 3A 6C 64 69 3A 6C 64 69 0D 0A 09    i:ldi:ldi:ldi...
01C630:  6C 64 69 3A 6C 64 69 3A 6C 64 69 3A 6C 64 69 3A    ldi:ldi:ldi:ldi:
01C640:  6C 64 69 3A 6C 64 69 3A 6C 64 69 3A 6C 64 69 3A    ldi:ldi:ldi:ldi:
01C650:  6C 64 69 3A 6C 64 69 3A 6C 64 69 3A 6C 64 69 3A    ldi:ldi:ldi:ldi:
01C660:  6C 64 69 3A 6C 64 69 3A 6C 64 69 3A 6C 64 69 0D    ldi:ldi:ldi:ldi.
01C670:  0A 09 6C 64 69 3A 6C 64 69 3A 6C 64 69 3A 6C 64    ..ldi:ldi:ldi:ld
01C680:  69 3A 6C 64 69 3A 6C 64 69 3A 6C 64 69 3A 6C 64    i:ldi:ldi:ldi:ld
01C690:  69 3A 6C 64 69 3A 6C 64 69 3A 6C 64 69 3A 6C 64    i:ldi:ldi:ldi:ld
01C6A0:  69 3A 6C 64 69 3A 6C 64 69 3A 6C 64 69 3A 72 65    i:ldi:ldi:ldi:re
01C6B0:  74 0D 0A 0D 0A 0D 0A 09 3B 2D 2D 2D 2D 2D 2D 2D    t.......;-------
01C6C0:  2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D    ----------------
01C6D0:  2D 2D 2D 2D 20 6D 69 73 63 65 6C 6C 61 6E 65 6F    ---- miscellaneo
01C6E0:  75 73 20 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D    us -------------
01C6F0:  2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D    ----------------
01C700:  0D 0A 2E 73 70 72 73 74 31 09 64 73 20 36 34 09    ...sprst1.ds 64.
01C710:  09 09 09 09 3B 44 6F 6E 27 74 20 77 69 70 65 20    ....;Don't wipe 
01C720:  62 61 63 6B 67 72 6F 75 6E 64 0D 0A 2E 73 70 72    background...spr
01C730:  73 74 32 09 64 73 20 36 34 09 09 09 09 09 3B 20    st2.ds 64.....; 
01C740:  7C 0D 0A 0D 0A 2E 62 6F 75 6E 63 78 09 64 62 20    |.....bouncx.db 
01C750:  26 46 46 09 09 09 09 09 3B 43 75 72 72 65 6E 74    &FF.....;Current
01C760:  20 58 20 70 6F 73 69 74 69 6F 6E 0D 0A 2E 6C 65     X position...le
01C770:  66 74 78 09 64 77 20 30 09 09 09 09 09 3B 53 63    ftx.dw 0.....;Sc
01C780:  72 65 65 6E 20 61 64 64 72 65 73 73 20 6F 66 20    reen address of 
01C790:  4C 48 20 73 70 72 69 74 65 0D 0A 2E 72 69 67 68    LH sprite...righ
01C7A0:  74 78 09 64 77 20 30 09 09 09 09 09 3B 53 63 72    tx.dw 0.....;Scr
01C7B0:  65 65 6E 20 61 64 64 72 65 73 73 20 6F 66 20 52    een address of R
01C7C0:  48 20 73 70 72 69 74 65 0D 0A 2E 6C 73 70 72 09    H sprite...lspr.
01C7D0:  64 77 20 66 6F 6E 74 2B 26 38 34 30 09 09 09 09    dw font+&840....
01C7E0:  3B 43 6F 6E 74 65 6E 74 20 61 64 64 72 65 73 73    ;Content address
01C7F0:  20 6F 66 20 4C 48 20 73 70 72 69 74 65 0D 0A 2E     of LH sprite...
01C800:  72 73 70 72 09 64 77 20 66 6F 6E 74 2B 26 38 38    rspr.dw font+&88
01C810:  30 09 09 09 09 3B 43 6F 6E 74 65 6E 74 20 61 64    0....;Content ad
01C820:  64 72 65 73 73 20 6F 66 20 52 48 20 73 70 72 69    dress of RH spri
01C830:  74 65 0D 0A 2E 6D 74 70 6F 73 09 64 77 20 6D 74    te...mtpos.dw mt
01C840:  65 78 74 09 09 09 09 3B 50 6F 73 69 74 69 6F 6E    ext....;Position
01C850:  20 69 6E 20 6D 65 73 73 61 67 65 20 74 65 78 74     in message text
01C860:  0D 0A 2E 73 6E 70 6F 73 09 64 77 20 73 69 6E 65    ...snpos.dw sine
01C870:  73 2D 31 09 09 09 09 3B 50 6F 73 69 74 69 6F 6E    s-1....;Position
01C880:  20 69 6E 20 73 69 6E 65 20 74 61 62 6C 65 0D 0A     in sine table..
01C890:  0D 0A 09 3B 2A 2A 2A 20 52 4F 55 54 09 4D 65 73    ...;*** ROUT.Mes
01C8A0:  73 61 67 65 20 77 72 69 74 65 72 20 74 65 78 74    sage writer text
01C8B0:  20 68 61 6E 64 6C 65 72 0D 0A 0D 0A 2E 6D 77 63     handler.....mwc
01C8C0:  61 6C 63 09 6C 64 20 68 6C 2C 28 73 6E 70 6F 73    alc.ld hl,(snpos
01C8D0:  29 3A 20 6C 64 20 61 2C 28 68 6C 29 09 09 3B 45    ): ld a,(hl)..;E
01C8E0:  6E 64 20 6F 66 20 70 61 74 68 3F 0D 0A 09 6F 72    nd of path?...or
01C8F0:  20 61 3A 20 6A 72 20 6E 7A 2C 73 6E 65 78 69 73     a: jr nz,snexis
01C900:  54 72 61 63 6B 2D 49 6E 66 6F 0D 0A 00 00 00 00    Track-Info......
01C910:  18 00 01 00 02 09 4E E5 18 00 C6 02 00 00 00 02    ......N.........
01C920:  18 00 C2 02 00 00 00 02 18 00 C7 02 00 00 00 02    ................
01C930:  18 00 C3 02 00 00 00 02 18 00 C8 02 00 00 00 02    ................
01C940:  18 00 C4 02 00 00 00 02 18 00 C9 02 00 00 00 02    ................
01C950:  18 00 C5 02 00 00 00 02 18 00 C1 02 00 00 00 02    ................
01C960:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
01C970:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
01C980:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
01C990:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
01C9A0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
01C9B0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
01C9C0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
01C9D0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
01C9E0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
01C9F0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
01CA00:  41 4E 44 20 22 0D 0A 09 64 62 20 22 54 41 53 54    AND "...db "TAST
01CA10:  45 29 20 4C 49 4B 45 20 55 4E 57 41 53 48 45 44    E) LIKE UNWASHED
01CA20:  20 47 45 4E 49 54 41 4C 49 41 2E 20 20 54 48 49     GENITALIA.  THI
01CA30:  53 20 44 45 4D 4F 20 49 53 20 44 45 44 49 43 41    S DEMO IS DEDICA
01CA40:  54 45 44 20 54 4F 20 54 41 4D 53 49 4E 20 54 48    TED TO TAMSIN TH
01CA50:  45 20 22 0D 0A 09 64 62 20 22 57 4F 4E 44 52 4F    E "...db "WONDRO
01CA60:  55 53 20 43 41 54 2E 20 20 20 20 4E 4F 57 20 49    US CAT.    NOW I
01CA70:  54 20 49 5A 20 44 41 20 43 52 45 44 49 54 5A 20    T IZ DA CREDITZ 
01CA80:  49 4E 20 57 48 49 43 48 20 46 4F 52 20 57 48 4F    IN WHICH FOR WHO
01CA90:  20 57 45 20 41 52 45 20 59 4F 55 20 57 45 4C 43     WE ARE YOU WELC
01CAA0:  4F 4D 49 4E 47 20 22 0D 0A 09 64 62 20 22 59 45    OMING "...db "YE
01CAB0:  53 20 50 4C 45 41 53 45 20 4D 41 54 52 4F 4E 2E    S PLEASE MATRON.
01CAC0:  20 20 20 20 20 20 48 49 47 48 2D 46 52 45 51 55          HIGH-FREQU
01CAD0:  45 4E 43 59 20 53 4F 55 4E 44 53 20 54 48 41 4E    ENCY SOUNDS THAN
01CAE0:  58 20 54 4F 20 54 4F 4D 20 44 45 41 4E 20 4F 46    X TO TOM DEAN OF
01CAF0:  20 53 51 55 45 41 4B 59 20 22 0D 0A 09 64 62 20     SQUEAKY "...db 
01CB00:  22 53 59 53 54 45 4D 21 20 20 20 20 52 41 44 49    "SYSTEM!    RADI
01CB10:  4B 41 4C 20 47 46 58 5A 58 5A 5A 5A 58 20 42 59    KAL GFXZXZZZX BY
01CB20:  20 47 4F 4E 4F 52 52 48 4F 45 41 20 4F 46 20 53     GONORRHOEA OF S
01CB30:  59 50 48 49 4C 49 53 2E 20 41 4C 53 4F 20 47 46    YPHILIS. ALSO GF
01CB40:  58 5A 5A 58 5A 58 58 5A 51 20 22 0D 0A 09 64 62    XZZXZXXZQ "...db
01CB50:  20 22 49 53 20 53 43 4F 52 49 4E 47 20 35 31 37     "IS SCORING 517
01CB60:  20 50 4F 49 4E 54 53 20 41 54 20 53 43 52 41 42     POINTS AT SCRAB
01CB70:  42 4C 45 20 49 46 20 59 4F 55 20 47 45 54 20 49    BLE IF YOU GET I
01CB80:  54 20 4F 4E 20 41 20 54 52 49 50 4C 45 2D 57 4F    T ON A TRIPLE-WO
01CB90:  52 22 0D 0A 6C 69 73 74 0D 0A 09 64 62 20 30 0D    R"..list...db 0.
01CBA0:  0A 1A 0D 0A 09 3B 73 74 61 72 72 69 6E 67 20 54    .....;starring T
01CBB0:  61 6D 73 69 6E 20 74 68 65 20 57 6F 6E 64 65 72    amsin the Wonder
01CBC0:  20 43 61 74 0D 0A 0D 0A 09 6F 72 67 20 26 38 30     Cat.....org &80
01CBD0:  30 30 0D 0A 09 77 72 69 74 65 20 22 64 69 73 63    00...write "disc
01CBE0:  2E 62 69 6E 22 0D 0A 09 6E 6F 6C 69 73 74 0D 0A    .bin"...nolist..
01CBF0:  0D 0A 09 3B 44 65 6D 6F 20 73 68 6F 72 74 2C 20    ...;Demo short, 
01CC00:  61 76 65 6C 70 3A 20 72 65 74 0D 0A 0D 0A 09 3B    avelp: ret.....;
01CC10:  2A 2A 2A 20 53 55 42 52 09 44 72 61 77 20 73 70    *** SUBR.Draw sp
01CC20:  72 69 74 65 20 66 72 6F 6D 20 48 4C 20 28 64 61    rite from HL (da
01CC30:  74 61 29 20 61 74 20 44 45 20 28 73 63 72 65 65    ta) at DE (scree
01CC40:  6E 29 0D 0A 0D 0A 2E 64 72 61 77 09 6C 64 20 61    n).....draw.ld a
01CC50:  2C 31 36 0D 0A 2E 64 72 61 77 6C 70 09 6C 64 69    ,16...drawlp.ldi
01CC60:  3A 6C 64 69 3A 6C 64 69 3A 6C 64 69 3A 20 65 78    :ldi:ldi:ldi: ex
01CC70:  20 64 65 2C 68 6C 0D 0A 09 6C 64 20 62 63 2C 26     de,hl...ld bc,&
01CC80:  30 37 46 43 3A 20 61 64 64 20 68 6C 2C 62 63 3A    07FC: add hl,bc:
01CC90:  20 62 69 74 20 36 2C 68 3A 20 6A 70 20 7A 2C 64     bit 6,h: jp z,d
01CCA0:  6E 65 78 74 0D 0A 09 6C 64 20 62 63 2C 26 43 30    next...ld bc,&C0
01CCB0:  36 30 3A 20 61 64 64 20 68 6C 2C 62 63 0D 0A 2E    60: add hl,bc...
01CCC0:  64 6E 65 78 74 09 65 78 20 64 65 2C 68 6C 3A 20    dnext.ex de,hl: 
01CCD0:  64 65 63 20 61 3A 20 6A 70 20 6E 7A 2C 64 72 61    dec a: jp nz,dra
01CCE0:  77 6C 70 3A 20 72 65 74 0D 0A 0D 0A 09 3B 2A 2A    wlp: ret.....;**
01CCF0:  2A 20 44 41 54 41 09 4D 65 73 73 61 67 65 20 77    * DATA.Message w
01CD00:  72 69 74 65 72 20 74 65 78 74 0D 0A 0D 0A 2E 6D    riter text.....m
01CD10:  74 65 78 74 09 64 62 20 22 2E 2E 2E 2E 4E 49 49    text.db "....NII
01CD20:  54 53 27 4D 53 41 2E 54 2E 22 09 09 3B 22 20 20    TS'MSA.T."..;"  
01CD30:  49 54 27 53 20 20 54 41 4D 53 49 4E 20 20 22 0D    IT'S  TAMSIN  ".
01CD40:  0A 09 64 62 20 22 2E 2E 54 54 41 48 43 45 2E 2E    ..db "..TTAHCE..
01CD50:  52 57 45 4F 44 4E 22 09 09 3B 22 20 54 48 45 20    RWEODN"..;" THE 
01CD60:  57 4F 4E 44 45 52 20 43 41 54 20 22 0D 0A 09 64    WONDER CAT "...d
01CD70:  62 20 22 47 45 4E 4E 49 47 4F 41 44 47 2E 45 4E    b "GENNIGOADG.EN
01CD80:  44 49 2E 22 09 09 3B 22 45 4E 47 41 47 45 44 20    DI."..;"ENGAGED 
01CD90:  49 4E 20 44 4F 49 4E 47 22 0D 0A 09 64 62 20 22    IN DOING"...db "
01CDA0:  21 57 53 4F 47 4E 4E 44 49 52 48 4F 54 55 2E 53    !WSOGNNDIRHOTU.S
01CDB0:  22 09 09 3B 22 57 4F 4E 44 52 4F 55 53 20 54 48    "..;"WONDROUS TH
01CDC0:  49 4E 47 53 21 22 0D 0A 09 64 62 20 30 0D 0A 0D    INGS!"...db 0...
01CDD0:  0A 09 3B 2A 2A 2A 20 44 41 54 41 09 53 63 72 6F    ..;*** DATA.Scro
01CDE0:  6C 6C 74 65 78 74 0D 0A 0D 0A 2E 74 65 78 74 09    lltext.....text.
01CDF0:  64 62 20 22 20 20 20 20 20 20 20 20 20 20 20 20    db "            
01CE00:  0D 0A 09 3B 38 2D 62 69 74 20 70 72 69 6E 74 65    ...;8-bit printe
01CE10:  72 20 70 6F 72 74 20 66 6F 72 20 43 50 43 20 50    r port for CPC P
01CE20:  6C 75 73 0D 0A 09 3B 28 63 29 31 39 39 37 20 43    lus...;(c)1997 C
01CE30:  52 54 43 2F 53 79 73 74 65 6D 65 20 44 0D 0A 0D    RTC/Systeme D...
01CE40:  0A 09 6F 72 67 20 26 41 30 30 30 09 09 3B 52 65    ..org &A000..;Re
01CE50:  6C 6F 63 61 74 65 20 69 66 20 79 6F 75 20 68 61    locate if you ha
01CE60:  76 65 20 61 20 73 74 75 70 69 64 20 6E 75 6D 62    ve a stupid numb
01CE70:  65 72 20 6F 66 20 52 4F 4D 73 0D 0A 09 77 72 69    er of ROMs...wri
01CE80:  74 65 20 22 70 6C 75 73 38 62 69 74 2E 62 69 6E    te "plus8bit.bin
01CE90:  22 0D 0A 09 6E 6F 6C 69 73 74 0D 0A 0D 0A 09 6C    "...nolist.....l
01CEA0:  64 20 68 6C 2C 74 61 62 6C 65 3A 20 63 61 6C 6C    d hl,table: call
01CEB0:  20 26 42 44 35 38 0D 0A 09 6C 64 20 68 6C 2C 26     &BD58...ld hl,&
01CEC0:  42 44 32 42 3A 20 6C 64 20 64 65 2C 6D 63 5F 70    BD2B: ld de,mc_p
01CED0:  63 3A 20 6C 64 20 62 63 2C 6D 63 5F 70 63 6F 3A    c: ld bc,mc_pco:
01CEE0:  20 63 61 6C 6C 20 70 61 74 63 68 0D 0A 09 6C 64     call patch...ld
01CEF0:  20 68 6C 2C 26 42 44 33 31 3A 20 6C 64 20 64 65     hl,&BD31: ld de
01CF00:  2C 6D 63 5F 73 70 3A 20 6C 64 20 62 63 2C 6D 63    ,mc_sp: ld bc,mc
01CF10:  5F 73 70 6F 3A 20 63 61 6C 6C 20 70 61 74 63 68    _spo: call patch
01CF20:  0D 0A 09 6C 64 20 68 6C 2C 26 42 44 46 31 3A 20    ...ld hl,&BDF1: 
01CF30:  6C 64 20 64 65 2C 6D 63 5F 77 70 3A 20 6C 64 20    ld de,mc_wp: ld 
01CF40:  62 63 2C 6D 63 5F 77 70 6F 3A 20 6A 70 20 20 20    bc,mc_wpo: jp   
01CF50:  70 61 74 63 68 0D 0A 0D 0A 09 3B 2A 2A 2A 20 52    patch.....;*** R
01CF60:  4F 55 54 09 4D 43 20 50 52 49 4E 54 20 43 48 41    OUT.MC PRINT CHA
01CF70:  52 0D 0A 0D 0A 2E 6D 63 5F 70 63 09 63 61 6C 6C    R.....mc_pc.call
01CF80:  20 62 69 74 38 0D 0A 2E 6D 63 5F 70 63 6F 09 64     bit8...mc_pco.d
01CF90:  73 20 33 0D 0A 0D 0A 09 3B 2A 2A 2A 20 52 4F 55    s 3.....;*** ROU
01CFA0:  54 09 4D 43 20 53 45 4E 44 20 50 52 49 4E 54 45    T.MC SEND PRINTE
01CFB0:  52 0D 0A 0D 0A 2E 6D 63 5F 73 70 09 63 61 6C 6C    R.....mc_sp.call
01CFC0:  20 62 69 74 38 0D 0A 2E 6D 63 5F 73 70 6F 09 64     bit8...mc_spo.d
01CFD0:  73 20 33 0D 0A 0D 0A 09 3B 2A 2A 2A 20 52 4F 55    s 3.....;*** ROU
01CFE0:  54 09 4D 43 20 57 41 49 54 20 50 52 49 4E 54 45    T.MC WAIT PRINTE
01CFF0:  52 20 69 6E 64 69 72 65 63 74 69 6F 6E 0D 0A 0D    R indirection...
01D000:  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                    
01D010:  20 47 52 45 45 54 49 4E 58 53 53 53 47 47 47 53     GREETINXSSSGGGS
01D020:  53 20 57 45 4C 43 4F 4D 45 20 49 4E 20 54 48 49    S WELCOME IN THI
01D030:  53 20 44 45 4D 4F 20 4F 46 20 54 4F 20 42 59 20    S DEMO OF TO BY 
01D040:  57 48 45 4E 20 48 4F 57 20 5A 45 20 45 51 56 41    WHEN HOW ZE EQVA
01D050:  4C 49 5A 4F 52 2E 20 22 0D 0A 09 64 62 20 22 20    LIZOR. "...db " 
01D060:  20 20 20 20 20 20 20 20 20 20 54 48 49 53 20 49              THIS I
01D070:  53 20 44 41 20 46 55 43 4B 49 4E 20 53 5A 45 4E    S DA FUCKIN SZEN
01D080:  45 20 4D 4F 42 20 53 54 53 20 57 49 54 48 20 44    E MOB STS WITH D
01D090:  41 20 4C 41 54 45 53 54 20 57 41 52 45 5A 20 46    A LATEST WAREZ F
01D0A0:  52 4F 4D 20 5A 45 20 53 5A 45 4E 45 2E 20 22 0D    ROM ZE SZENE. ".
01D0B0:  0A 09 64 62 20 22 41 4C 4C 20 43 4F 44 49 4E 47    ..db "ALL CODING
01D0C0:  20 42 59 20 43 52 4F 57 4E 20 4F 46 20 53 54 53     BY CROWN OF STS
01D0D0:  2E 20 47 52 41 46 49 58 20 42 59 20 4B 4E 55 55    . GRAFIX BY KNUU
01D0E0:  55 55 54 53 43 48 46 4C 45 43 4B 20 4F 46 20 49    UUTSCHFLECK OF I
01D0F0:  46 57 20 22 0D 0A 09 64 62 20 22 28 49 4E 43 4F    FW "...db "(INCO
01D100:  4D 50 45 54 45 4E 54 20 46 55 43 4B 57 49 54 53    MPETENT FUCKWITS
01D110:  29 2E 20 4D 55 53 49 58 58 20 42 59 20 4B 41 4E    ). MUSIXX BY KAN
01D120:  47 41 52 4F 4F 20 4F 46 20 41 52 53 45 42 41 4E    GAROO OF ARSEBAN
01D130:  44 49 54 20 50 52 4F 44 55 43 54 49 4F 4E 53 20    DIT PRODUCTIONS 
01D140:  22 0D 0A 09 64 62 20 22 47 4D 42 48 2E 20 4A 4F    "...db "GMBH. JO
01D150:  42 42 49 4E 47 20 49 4E 54 4F 20 41 20 57 41 4C    BBING INTO A WAL
01D160:  4C 20 49 4E 20 4D 4F 4E 41 43 4F 20 42 59 20 4D    L IN MONACO BY M
01D170:  49 43 48 41 45 4C 20 53 43 48 55 4D 41 43 48 45    ICHAEL SCHUMACHE
01D180:  52 2E 20 46 52 49 44 47 45 20 22 0D 0A 09 64 62    R. FRIDGE "...db
01D190:  20 22 4D 41 47 4E 45 54 2E 20 47 52 45 45 54 49     "MAGNET. GREETI
01D1A0:  4E 47 20 46 52 4F 4D 20 4E 49 50 50 4C 45 20 43    NG FROM NIPPLE C
01D1B0:  4C 41 4D 50 20 4F 46 20 53 54 53 2E 20 48 49 20    LAMP OF STS. HI 
01D1C0:  54 48 45 52 45 2C 20 57 45 4C 43 4F 4D 45 20 49    THERE, WELCOME I
01D1D0:  4E 20 54 48 49 53 20 22 0D 0A 09 64 62 20 22 44    N THIS "...db "D
01D1E0:  45 4D 4F 2C 20 49 4E 20 57 48 49 43 48 20 49 20    EMO, IN WHICH I 
01D1F0:  41 4D 20 57 45 4C 43 4F 4D 49 4E 47 20 59 4F 55    AM WELCOMING YOU
01D200:  0A 2E 6D 63 5F 77 70 09 63 61 6C 6C 20 62 69 74    ..mc_wp.call bit
01D210:  38 0D 0A 2E 6D 63 5F 77 70 6F 09 64 73 20 33 0D    8...mc_wpo.ds 3.
01D220:  0A 0D 0A 09 3B 2A 2A 2A 20 53 55 42 52 09 53 65    ....;*** SUBR.Se
01D230:  6E 64 20 65 69 67 68 74 68 20 62 69 74 20 74 6F    nd eighth bit to
01D240:  20 43 52 54 43 20 72 65 67 69 73 74 65 72 20 31     CRTC register 1
01D250:  32 2C 20 62 69 74 20 33 0D 0A 0D 0A 2E 62 69 74    2, bit 3.....bit
01D260:  38 09 70 75 73 68 20 61 66 3A 20 70 75 73 68 20    8.push af: push 
01D270:  62 63 0D 0A 09 20 6C 64 20 62 63 2C 26 42 43 30    bc... ld bc,&BC0
01D280:  43 3A 20 6F 75 74 20 28 63 29 2C 63 3A 20 6C 64    C: out (c),c: ld
01D290:  20 63 2C 61 0D 0A 09 20 6C 64 20 62 20 2C 26 42     c,a... ld b ,&B
01D2A0:  46 20 20 3A 20 69 6E 20 61 2C 28 63 29 20 3A 20    F  : in a,(c) : 
01D2B0:  61 6E 64 20 32 34 37 0D 0A 09 20 62 69 74 20 37    and 247... bit 7
01D2C0:  2C 63 3A 20 6A 72 20 7A 2C 62 69 74 38 5F 30 20    ,c: jr z,bit8_0 
01D2D0:  20 3A 20 6F 72 20 20 38 0D 0A 2E 62 69 74 38 5F     : or  8...bit8_
01D2E0:  30 09 20 6C 64 20 62 63 2C 26 42 43 30 43 3A 20    0. ld bc,&BC0C: 
01D2F0:  6F 75 74 20 28 63 29 2C 63 0D 0A 09 20 69 6E 63    out (c),c... inc
01D300:  20 62 20 20 20 20 20 20 3A 20 6F 75 74 20 28 63     b      : out (c
01D310:  29 2C 61 0D 0A 09 70 6F 70 20 62 63 3A 20 70 6F    ),a...pop bc: po
01D320:  70 20 61 66 3A 20 72 65 74 0D 0A 0D 0A 09 3B 2A    p af: ret.....;*
01D330:  2A 2A 20 53 55 42 52 09 47 65 6E 65 72 61 6C 2D    ** SUBR.General-
01D340:  70 75 72 70 6F 73 65 20 70 61 74 63 68 20 72 6F    purpose patch ro
01D350:  75 74 69 6E 65 0D 0A 09 3B 09 09 50 61 74 63 68    utine...;..Patch
01D360:  65 73 20 48 4C 20 74 6F 20 6A 75 6D 70 20 74 6F    es HL to jump to
01D370:  20 44 45 2C 20 70 6C 61 63 69 6E 67 20 6F 72 69     DE, placing ori
01D380:  67 69 6E 61 6C 20 62 79 74 65 73 20 61 74 20 42    ginal bytes at B
01D390:  43 0D 0A 0D 0A 2E 70 61 74 63 68 09 6C 64 20 61    C.....patch.ld a
01D3A0:  2C 28 68 6C 29 3A 20 6C 64 20 28 62 63 29 2C 61    ,(hl): ld (bc),a
01D3B0:  3A 20 69 6E 63 20 62 63 3A 20 69 6E 63 20 68 6C    : inc bc: inc hl
01D3C0:  0D 0A 09 6C 64 20 61 2C 28 68 6C 29 3A 20 6C 64    ...ld a,(hl): ld
01D3D0:  20 28 62 63 29 2C 61 3A 20 69 6E 63 20 62 63 3A     (bc),a: inc bc:
01D3E0:  20 69 6E 63 20 68 6C 0D 0A 09 6C 64 20 61 2C 28     inc hl...ld a,(
01D3F0:  68 6C 29 3A 20 6C 64 20 28 62 63 29 2C 61 3A 20    hl): ld (bc),a: 
01D400:  20 49 4E 2E 20 41 47 41 49 4E 2E 20 54 48 49 53     IN. AGAIN. THIS
01D410:  20 49 53 20 4E 49 50 50 4C 45 20 43 4C 41 4D 50     IS NIPPLE CLAMP
01D420:  20 22 0D 0A 09 64 62 20 22 53 50 45 41 4B 49 4E     "...db "SPEAKIN
01D430:  47 2C 20 4F 52 20 52 41 54 48 45 52 2C 20 57 52    G, OR RATHER, WR
01D440:  49 54 49 4E 47 20 48 41 21 20 48 41 21 20 49 4E    ITING HA! HA! IN
01D450:  20 54 48 49 53 20 44 45 4D 4F 20 49 4E 20 57 48     THIS DEMO IN WH
01D460:  49 43 48 20 59 4F 55 20 41 52 45 20 22 0D 0A 09    ICH YOU ARE "...
01D470:  64 62 20 22 42 45 49 4E 47 20 57 45 4C 43 4F 4D    db "BEING WELCOM
01D480:  45 44 2E 20 47 52 45 45 54 49 4E 58 53 20 54 4F    ED. GREETINXS TO
01D490:  20 54 48 45 20 45 55 52 4F 50 45 41 4E 20 4D 45     THE EUROPEAN ME
01D4A0:  4D 42 45 52 53 20 4F 46 20 53 54 53 2E 20 54 48    MBERS OF STS. TH
01D4B0:  45 53 45 20 41 52 45 20 22 0D 0A 09 64 62 20 22    ESE ARE "...db "
01D4C0:  54 48 45 20 4D 45 4E 20 57 48 4F 4D 20 49 20 41    THE MEN WHOM I A
01D4D0:  4D 20 4E 4F 57 20 57 45 4C 43 4F 4D 49 4E 47 2E    M NOW WELCOMING.
01D4E0:  20 42 45 41 52 44 45 44 20 43 4C 41 4D 20 2D 20     BEARDED CLAM - 
01D4F0:  4E 49 43 45 20 54 49 4E 42 41 42 55 4C 41 54 49    NICE TINBABULATI
01D500:  4F 4E 20 49 4E 20 22 0D 0A 09 64 62 20 22 59 4F    ON IN "...db "YO
01D510:  55 52 20 43 4C 49 54 4F 52 49 53 20 44 45 4D 4F    UR CLITORIS DEMO
01D520:  2E 20 43 48 45 45 53 59 20 48 45 4C 4D 45 54 20    . CHEESY HELMET 
01D530:  46 4C 41 4B 45 53 20 2D 20 4C 4F 4F 4B 20 46 4F    FLAKES - LOOK FO
01D540:  52 57 41 52 44 20 54 4F 20 53 45 45 49 4E 47 20    RWARD TO SEEING 
01D550:  22 0D 0A 09 64 62 20 22 59 4F 55 52 20 4C 41 54    "...db "YOUR LAT
01D560:  45 53 54 20 55 54 49 4C 49 54 59 2C 20 43 48 45    EST UTILITY, CHE
01D570:  45 53 45 20 43 4C 4F 4E 45 52 2E 20 50 49 53 53    ESE CLONER. PISS
01D580:  46 4C 41 50 53 20 2D 20 47 52 45 41 54 20 50 45    FLAPS - GREAT PE
01D590:  52 53 49 53 54 49 4E 41 54 49 4F 4E 20 22 0D 0A    RSISTINATION "..
01D5A0:  09 64 62 20 22 4D 41 54 45 2C 20 4B 45 45 50 20    .db "MATE, KEEP 
01D5B0:  55 50 20 54 48 45 20 46 52 59 49 4E 47 20 50 41    UP THE FRYING PA
01D5C0:  4E 2E 20 20 20 47 41 4C 4C 4F 50 49 4E 47 20 4E    N.   GALLOPING N
01D5D0:  4F 42 20 52 4F 54 20 2D 20 4E 49 43 45 20 53 41    OB ROT - NICE SA
01D5E0:  4C 53 41 20 49 4E 20 59 4F 55 52 20 22 0D 0A 09    LSA IN YOUR "...
01D5F0:  64 62 20 22 50 52 45 54 5A 45 4C 53 21 20 57 45    db "PRETZELS! WE
01D600:  64 65 63 20 68 6C 3A 20 64 65 63 20 68 6C 0D 0A    dec hl: dec hl..
01D610:  0D 0A 09 6C 64 20 28 68 6C 29 2C 26 43 33 3A 20    ...ld (hl),&C3: 
01D620:  69 6E 63 20 68 6C 0D 0A 09 6C 64 20 28 68 6C 29    inc hl...ld (hl)
01D630:  2C 65 20 20 3A 20 69 6E 63 20 68 6C 0D 0A 09 6C    ,e  : inc hl...l
01D640:  64 20 28 68 6C 29 2C 64 20 20 3A 20 72 65 74 0D    d (hl),d  : ret.
01D650:  0A 0D 0A 09 3B 2A 2A 2A 20 44 41 54 41 09 50 72    ....;*** DATA.Pr
01D660:  69 6E 74 65 72 20 74 72 61 6E 73 6C 61 74 69 6F    inter translatio
01D670:  6E 20 74 61 62 6C 65 0D 0A 0D 0A 2E 74 61 62 6C    n table.....tabl
01D680:  65 09 6E 6F 70 0D 0A 1A 49 54 24 24 24 FF 00 FF    e.nop...IT$$$...
01D690:  72 20 70 6F 72 74 20 66 6F 72 20 43 50 43 20 50    r port for CPC P
01D6A0:  6C 75 73 0D 0A 09 3B 28 63 29 31 39 39 37 20 53    lus...;(c)1997 S
01D6B0:  79 73 74 65 6D 65 20 44 0D 0A 0D 0A 09 6F 72 67    ysteme D.....org
01D6C0:  20 26 41 30 30 30 0D 0A 09 77 72 69 74 65 20 22     &A000...write "
01D6D0:  70 6C 75 73 38 62 69 74 2E 62 69 6E 22 0D 0A 09    plus8bit.bin"...
01D6E0:  6E 6F 6C 69 73 74 0D 0A 0D 0A 09 6C 64 20 68 6C    nolist.....ld hl
01D6F0:  2C 74 61 62 6C 65 3A 20 63 61 6C 6C 20 26 42 44    ,table: call &BD
01D700:  20 62 20 20 20 20 20 20 3A 20 6F 75 74 20 28 63     b      : out (c
01D710:  29 2C 61 0D 0A 09 70 6F 70 20 62 63 3A 20 70 6F    ),a...pop bc: po
01D720:  70 20 61 66 3A 20 72 65 74 0D 0A 0D 0A 09 3B 2A    p af: ret.....;*
01D730:  2A 2A 20 53 55 42 52 09 47 65 6E 65 72 61 6C 2D    ** SUBR.General-
01D740:  70 75 72 70 6F 73 65 20 70 61 74 63 68 20 72 6F    purpose patch ro
01D750:  75 74 69 6E 65 0D 0A 09 3B 09 09 50 61 74 63 68    utine...;..Patch
01D760:  65 73 20 48 4C 20 74 6F 20 6A 75 6D 70 20 74 6F    es HL to jump to
01D770:  20 44 45 2C 20 70 6C 61 63 69 6E 67 20 6F 72 69     DE, placing ori
01D780:  67 69 6E 61 6C 20 62 79 74 65 73 20 61 74 20 42    ginal bytes at B
01D790:  43 0D 0A 0D 0A 2E 70 61 74 63 68 09 6C 64 20 61    C.....patch.ld a
01D7A0:  2C 28 68 6C 29 3A 20 6C 64 20 28 62 63 29 2C 61    ,(hl): ld (bc),a
01D7B0:  3A 20 69 6E 63 20 62 63 3A 20 69 6E 63 20 68 6C    : inc bc: inc hl
01D7C0:  0D 0A 09 6C 64 20 61 2C 28 68 6C 29 3A 20 6C 64    ...ld a,(hl): ld
01D7D0:  20 28 62 63 29 2C 61 3A 20 69 6E 63 20 62 63 3A     (bc),a: inc bc:
01D7E0:  20 69 6E 63 20 68 6C 0D 0A 09 6C 64 20 61 2C 28     inc hl...ld a,(
01D7F0:  68 6C 29 3A 20 6C 64 20 28 62 63 29 2C 61 3A 20    hl): ld (bc),a: 
01D800:  20 41 4C 53 4F 20 48 41 56 45 20 56 41 4C 55 41     ALSO HAVE VALUA
01D810:  42 4C 45 20 49 4E 50 55 54 20 46 52 4F 4D 20 45    BLE INPUT FROM E
01D820:  57 41 52 57 4F 4F 57 4F 4F 20 57 48 4F 53 45 20    WARWOOWOO WHOSE 
01D830:  4F 4E 4C 59 20 22 0D 0A 09 64 62 20 22 50 55 52    ONLY "...db "PUR
01D840:  50 4F 53 45 20 49 4E 20 48 49 53 20 56 45 52 59    POSE IN HIS VERY
01D850:  20 53 41 44 2C 20 44 41 52 4B 20 45 58 49 53 54     SAD, DARK EXIST
01D860:  45 4E 43 45 20 49 53 20 54 4F 20 43 4F 4D 50 4C    ENCE IS TO COMPL
01D870:  45 54 45 20 48 49 53 20 4E 4F 56 45 4C 20 22 0D    ETE HIS NOVEL ".
01D880:  0A 09 64 62 20 22 45 4E 54 49 54 4C 45 44 20 31    ..db "ENTITLED 1
01D890:  30 30 31 20 54 48 49 4E 47 53 20 54 4F 20 44 4F    001 THINGS TO DO
01D8A0:  20 57 49 54 48 20 59 4F 55 52 20 47 45 52 42 49     WITH YOUR GERBI
01D8B0:  4C 20 44 52 4F 50 50 49 4E 47 53 2E 20 20 20 20    L DROPPINGS.    
01D8C0:  20 20 20 20 20 20 20 20 20 20 22 0D 0A 0D 0A 09              ".....
01D8D0:  64 62 20 22 4E 4F 57 20 59 4F 55 20 48 41 56 45    db "NOW YOU HAVE
01D8E0:  20 42 45 45 4E 20 4F 46 46 49 43 49 41 4C 4C 59     BEEN OFFICIALLY
01D8F0:  20 57 45 4C 43 4F 4D 45 44 20 49 4E 54 4F 20 54     WELCOMED INTO T
01D900:  48 49 53 20 44 45 4D 4F 2C 20 53 4F 20 59 4F 55    HIS DEMO, SO YOU
01D910:  20 57 49 4C 4C 20 4E 4F 57 20 22 0D 0A 09 64 62     WILL NOW "...db
01D920:  20 22 42 45 20 55 4E 4F 46 46 49 43 49 41 4C 4C     "BE UNOFFICIALL
01D930:  59 20 57 45 4C 43 4F 4D 45 44 20 49 4E 54 4F 20    Y WELCOMED INTO 
01D940:  54 48 49 53 20 44 45 4D 4F 2C 20 53 4F 20 48 45    THIS DEMO, SO HE
01D950:  52 45 20 47 4F 45 53 20 20 20 20 20 20 20 57 45    RE GOES       WE
01D960:  4C 43 4F 4D 45 20 49 4E 20 22 0D 0A 09 64 62 20    LCOME IN "...db 
01D970:  22 4F 55 52 20 57 4F 4E 44 45 52 46 55 4C 20 57    "OUR WONDERFUL W
01D980:  4F 52 4C 44 20 4F 46 20 44 45 4D 4F 2E 20 53 4F    ORLD OF DEMO. SO
01D990:  20 57 45 4C 43 4F 4D 45 20 41 47 41 49 4E 2C 20     WELCOME AGAIN, 
01D9A0:  43 41 54 45 52 49 4E 47 20 49 53 20 42 59 20 45    CATERING IS BY E
01D9B0:  57 41 52 57 4F 4F 57 4F 4F 20 22 0D 0A 09 64 62    WARWOOWOO "...db
01D9C0:  20 22 43 41 54 45 52 49 4E 47 20 43 4F 52 50 4F     "CATERING CORPO
01D9D0:  52 41 54 49 4F 4E 20 41 4E 44 20 4F 4E 4C 59 20    RATION AND ONLY 
01D9E0:  43 4F 4E 53 49 53 54 53 20 4F 46 20 43 52 49 53    CONSISTS OF CRIS
01D9F0:  50 53 20 57 48 49 43 48 20 53 4D 45 4C 4C 20 28    PS WHICH SMELL (
01DA00:  20 63 6F 6E 74 65 6E 74 73 0D 0A 09 6C 64 20 68     contents...ld h
01DA10:  6C 2C 28 72 69 67 68 74 78 29 3A 20 6C 64 20 64    l,(rightx): ld d
01DA20:  65 2C 73 70 72 73 74 32 3A 20 63 61 6C 6C 20 73    e,sprst2: call s
01DA30:  61 76 65 09 3B 20 7C 0D 0A 09 6C 64 20 64 65 2C    ave.; |...ld de,
01DA40:  28 6C 65 66 74 78 20 29 3A 20 6C 64 20 68 6C 2C    (leftx ): ld hl,
01DA50:  28 6C 73 70 72 29 3A 20 63 61 6C 6C 20 64 72 61    (lspr): call dra
01DA60:  77 09 3B 44 72 61 77 20 6E 65 77 20 73 70 72 69    w.;Draw new spri
01DA70:  74 65 0D 0A 09 6C 64 20 64 65 2C 28 72 69 67 68    te...ld de,(righ
01DA80:  74 78 29 3A 20 6C 64 20 68 6C 2C 28 72 73 70 72    tx): ld hl,(rspr
01DA90:  29 3A 20 63 61 6C 6C 20 64 72 61 77 09 3B 20 7C    ): call draw.; |
01DAA0:  0D 0A 09 72 65 74 0D 0A 0D 0A 09 3B 2A 2A 2A 20    ...ret.....;*** 
01DAB0:  52 4F 55 54 09 4D 65 73 73 61 67 65 20 77 72 69    ROUT.Message wri
01DAC0:  74 65 72 20 73 74 61 67 65 20 32 20 2D 20 72 65    ter stage 2 - re
01DAD0:  6D 6F 76 65 20 73 70 72 69 74 65 73 0D 0A 0D 0A    move sprites....
01DAE0:  2E 73 74 61 67 65 32 09 6C 64 20 64 65 2C 28 72    .stage2.ld de,(r
01DAF0:  69 67 68 74 78 29 3A 20 6C 64 20 68 6C 2C 73 70    ightx): ld hl,sp
01DB00:  72 73 74 32 3A 20 63 61 6C 6C 20 64 72 61 77 0D    rst2: call draw.
01DB10:  0A 09 6C 64 20 64 65 2C 28 6C 65 66 74 78 20 29    ..ld de,(leftx )
01DB20:  3A 20 6C 64 20 68 6C 2C 73 70 72 73 74 31 3A 20    : ld hl,sprst1: 
01DB30:  63 61 6C 6C 20 64 72 61 77 0D 0A 09 72 65 74 0D    call draw...ret.
01DB40:  0A 0D 0A 09 3B 2A 2A 2A 20 53 55 42 52 09 53 74    ....;*** SUBR.St
01DB50:  6F 72 65 20 73 70 72 69 74 65 20 66 72 6F 6D 20    ore sprite from 
01DB60:  48 4C 20 28 73 63 72 65 65 6E 29 20 69 6E 20 44    HL (screen) in D
01DB70:  45 20 28 64 61 74 61 29 0D 0A 0D 0A 2E 73 61 76    E (data).....sav
01DB80:  65 09 6C 64 20 61 2C 31 36 0D 0A 2E 73 61 76 65    e.ld a,16...save
01DB90:  6C 70 09 6C 64 69 3A 6C 64 69 3A 6C 64 69 3A 6C    lp.ldi:ldi:ldi:l
01DBA0:  64 69 0D 0A 09 6C 64 20 62 63 2C 26 30 37 46 43    di...ld bc,&07FC
01DBB0:  3A 20 61 64 64 20 68 6C 2C 62 63 3A 20 62 69 74    : add hl,bc: bit
01DBC0:  20 36 2C 68 3A 20 6A 70 20 7A 2C 73 6E 65 78 74     6,h: jp z,snext
01DBD0:  0D 0A 09 6C 64 20 62 63 2C 26 43 30 36 30 3A 20    ...ld bc,&C060: 
01DBE0:  61 64 64 20 68 6C 2C 62 63 0D 0A 2E 73 6E 65 78    add hl,bc...snex
01DBF0:  74 09 64 65 63 20 61 3A 20 6A 70 20 6E 7A 2C 73    t.dec a: jp nz,s
01DC00:  54 72 61 63 6B 2D 49 6E 66 6F 0D 0A 00 00 00 00    Track-Info......
01DC10:  19 00 01 00 02 09 4E E5 19 00 C9 02 00 00 00 02    ......N.........
01DC20:  19 00 C5 02 00 00 00 02 19 00 C1 02 00 00 00 02    ................
01DC30:  19 00 C6 02 00 00 00 02 19 00 C2 02 00 00 00 02    ................
01DC40:  19 00 C7 02 00 00 00 02 19 00 C3 02 00 00 00 02    ................
01DC50:  19 00 C8 02 00 00 00 02 19 00 C4 02 00 00 00 02    ................
01DC60:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
01DC70:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
01DC80:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
01DC90:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
01DCA0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
01DCB0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
01DCC0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
01DCD0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
01DCE0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
01DCF0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
01DD00:  31 37 2C 32 31 37 2C 32 30 37 2C 32 32 39 2C 33    17,217,207,229,3
01DD10:  38 2C 30 2C 32 33 30 2C 35 34 2C 35 34 2C 35 31    8,0,230,54,54,51
01DD20:  2C 32 32 34 2C 33 0D 0A 09 64 62 20 32 32 39 2C    ,224,3...db 229,
01DD30:  34 2C 30 2C 31 32 36 2C 32 32 39 2C 36 2C 32 34    4,0,126,229,6,24
01DD40:  2C 32 32 39 2C 36 38 2C 30 2C 32 35 35 2C 32 35    ,229,68,0,255,25
01DD50:  35 2C 32 32 39 2C 31 39 2C 30 2C 32 32 39 2C 31    5,229,19,0,229,1
01DD60:  32 2C 32 35 35 2C 31 39 32 2C 33 31 0D 0A 09 64    2,255,192,31...d
01DD70:  62 20 31 32 37 2C 32 32 39 2C 31 30 2C 32 35 35    b 127,229,10,255
01DD80:  2C 31 32 37 2C 31 32 37 2C 31 32 37 2C 33 31 2C    ,127,127,127,31,
01DD90:  31 39 32 2C 32 35 35 2C 31 34 38 2C 31 37 30 2C    192,255,148,170,
01DDA0:  31 38 32 2C 37 33 2C 31 34 38 2C 36 36 2C 32 32    182,73,148,66,22
01DDB0:  39 0D 0A 09 64 62 20 34 2C 32 35 35 2C 32 32 39    9...db 4,255,229
01DDC0:  2C 38 2C 30 2C 31 32 38 2C 31 32 38 2C 31 37 37    ,8,0,128,128,177
01DDD0:  2C 31 37 37 2C 31 35 35 2C 31 34 32 2C 31 33 32    ,177,155,142,132
01DDE0:  2C 32 32 39 2C 33 38 2C 30 2C 39 36 2C 39 36 2C    ,229,38,0,96,96,
01DDF0:  39 36 2C 32 32 34 0D 0A 09 64 62 20 39 36 2C 31    96,224...db 96,1
01DE00:  32 38 2C 32 32 39 2C 36 2C 30 2C 32 31 37 2C 32    28,229,6,0,217,2
01DE10:  32 37 2C 31 39 35 2C 31 39 35 2C 31 39 33 2C 32    27,195,195,193,2
01DE20:  32 39 2C 36 38 2C 30 2C 32 35 35 2C 32 35 35 2C    29,68,0,255,255,
01DE30:  32 32 39 2C 31 39 2C 30 2C 32 32 39 0D 0A 09 64    229,19,0,229...d
01DE40:  62 20 31 32 2C 32 35 35 2C 31 32 37 2C 33 31 2C    b 12,255,127,31,
01DE50:  31 39 39 2C 31 39 35 2C 31 39 33 2C 32 32 35 2C    199,195,193,225,
01DE60:  32 32 39 2C 36 2C 32 32 34 2C 32 32 35 2C 32 32    229,6,224,225,22
01DE70:  35 2C 32 32 37 2C 31 39 39 2C 33 31 2C 31 32 37    5,227,199,31,127
01DE80:  0D 0A 09 64 62 20 32 35 35 2C 31 37 30 2C 31 36    ...db 255,170,16
01DE90:  35 2C 34 32 2C 35 2C 37 34 2C 31 36 35 2C 32 32    5,42,5,74,165,22
01DEA0:  39 2C 34 2C 32 35 35 2C 32 32 39 2C 31 30 2C 30    9,4,255,229,10,0
01DEB0:  2C 31 35 38 2C 31 33 31 2C 33 31 2C 35 31 2C 33    ,158,131,31,51,3
01DEC0:  31 2C 32 32 39 0D 0A 09 64 62 20 33 36 2C 30 2C    1,229...db 36,0,
01DED0:  31 35 2C 31 32 2C 31 32 2C 31 35 2C 31 35 2C 31    15,12,12,15,15,1
01DEE0:  33 2C 31 32 2C 32 32 39 2C 37 2C 30 2C 32 33 31    3,12,229,7,0,231
01DEF0:  2C 35 34 2C 32 34 36 2C 36 2C 32 33 30 2C 32 32    ,54,246,6,230,22
01DF00:  70 0D 0A 09 72 65 74 0D 0A 0D 0A 09 3B 2A 2A 2A    p...ret.....;***
01DF10:  20 53 55 42 52 09 50 6C 61 63 65 20 68 69 67 68     SUBR.Place high
01DF20:  6C 69 67 68 74 20 62 61 72 20 61 74 20 48 4C 0D    light bar at HL.
01DF30:  0A 0D 0A 2E 68 6C 69 67 68 74 09 6C 64 20 63 2C    ....hlight.ld c,
01DF40:  31 32 0D 0A 2E 68 6C 6C 6F 6F 70 09 70 75 73 68    12...hlloop.push
01DF50:  20 68 6C 3A 20 6C 64 20 62 2C 33 33 0D 0A 2E 68     hl: ld b,33...h
01DF60:  6C 6C 6F 70 69 09 20 6C 64 20 61 2C 28 68 6C 29    llopi. ld a,(hl)
01DF70:  3A 20 6C 64 20 64 2C 61 3A 20 72 6C 63 20 64 0D    : ld d,a: rlc d.
01DF80:  0A 09 20 09 20 20 20 20 6F 72 20 64 3A 20 78 6F    .. .    or d: xo
01DF90:  72 20 32 35 35 0D 0A 09 20 6C 64 20 28 68 6C 29    r 255... ld (hl)
01DFA0:  2C 61 3A 20 69 6E 63 20 68 6C 0D 0A 09 20 64 6A    ,a: inc hl... dj
01DFB0:  6E 7A 20 68 6C 6C 6F 70 69 0D 0A 09 70 6F 70 20    nz hllopi...pop 
01DFC0:  68 6C 0D 0A 09 63 61 6C 6C 20 26 42 43 32 36 0D    hl...call &BC26.
01DFD0:  0A 09 64 65 63 20 63 3A 20 6A 72 20 6E 7A 2C 68    ..dec c: jr nz,h
01DFE0:  6C 6C 6F 6F 70 0D 0A 09 72 65 74 0D 0A 0D 0A 09    lloop...ret.....
01DFF0:  3B 2A 2A 2A 20 53 55 42 52 09 52 65 6D 6F 76 65    ;*** SUBR.Remove
01E000:  20 68 69 67 68 6C 69 67 68 74 20 62 61 72 20 66     highlight bar f
01E010:  72 6F 6D 20 48 4C 0D 0A 0D 0A 2E 72 65 6D 76 68    rom HL.....remvh
01E020:  6C 09 6C 64 20 63 2C 31 32 0D 0A 2E 72 6D 6C 6F    l.ld c,12...rmlo
01E030:  6F 70 09 70 75 73 68 20 68 6C 3A 20 6C 64 20 62    op.push hl: ld b
01E040:  2C 33 33 0D 0A 2E 72 6D 6C 6F 70 69 09 20 6C 64    ,33...rmlopi. ld
01E050:  20 61 2C 28 68 6C 29 3A 20 78 6F 72 20 32 35 35     a,(hl): xor 255
01E060:  3A 20 61 6E 64 20 38 35 0D 0A 09 20 6C 64 20 28    : and 85... ld (
01E070:  68 6C 29 2C 61 3A 20 69 6E 63 20 68 6C 0D 0A 09    hl),a: inc hl...
01E080:  20 64 6A 6E 7A 20 72 6D 6C 6F 70 69 0D 0A 09 70     djnz rmlopi...p
01E090:  6F 70 20 68 6C 0D 0A 09 63 61 6C 6C 20 26 42 43    op hl...call &BC
01E0A0:  32 36 0D 0A 09 64 65 63 20 63 3A 20 6A 72 20 6E    26...dec c: jr n
01E0B0:  7A 2C 72 6D 6C 6F 6F 70 0D 0A 09 72 65 74 0D 0A    z,rmloop...ret..
01E0C0:  0D 0A 0D 0A 09 3B 2A 2A 2A 20 53 55 42 52 09 44    .....;*** SUBR.D
01E0D0:  69 73 70 6C 61 79 20 74 69 74 6C 65 20 73 63 72    isplay title scr
01E0E0:  65 65 6E 0D 0A 0D 0A 2E 73 63 72 65 65 6E 09 64    een.....screen.d
01E0F0:  62 20 32 30 35 2C 35 39 2C 30 2C 35 39 2C 35 39    b 205,59,0,59,59
01E100:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
01E110:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
01E120:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
01E130:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
01E140:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
01E150:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
01E160:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
01E170:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
01E180:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
01E190:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
01E1A0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
01E1B0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
01E1C0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
01E1D0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
01E1E0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
01E1F0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
01E200:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
01E210:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
01E220:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
01E230:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
01E240:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
01E250:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
01E260:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
01E270:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
01E280:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
01E290:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
01E2A0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
01E2B0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
01E2C0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
01E2D0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
01E2E0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
01E2F0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
01E300:  2C 32 32 35 2C 31 37 2C 36 32 2C 30 2C 32 35 2C    ,225,17,62,0,25,
01E310:  31 37 2C 30 2C 31 39 32 2C 32 33 35 2C 31 2C 32    17,0,192,235,1,2
01E320:  35 2C 30 2C 32 34 2C 32 39 2C 35 2C 32 34 38 2C    5,0,24,29,5,248,
01E330:  36 32 0D 0A 09 64 62 20 32 32 39 2C 34 2C 32 31    62...db 229,4,21
01E340:  33 2C 31 31 39 2C 31 37 2C 30 2C 38 2C 32 35 2C    3,119,17,0,8,25,
01E350:  34 38 2C 31 33 2C 31 37 2C 38 30 2C 31 39 32 2C    48,13,17,80,192,
01E360:  32 35 2C 31 33 2C 33 32 2C 36 2C 31 34 2C 32 35    25,13,32,6,14,25
01E370:  2C 31 37 2C 34 39 0D 0A 09 64 62 20 32 34 38 2C    ,17,49...db 248,
01E380:  32 35 2C 31 36 2C 32 33 34 2C 32 30 39 2C 32 36    25,16,234,209,26
01E390:  2C 31 39 2C 32 35 34 2C 32 32 39 2C 33 32 2C 32    ,19,254,229,32,2
01E3A0:  32 35 2C 32 36 2C 31 39 2C 37 31 2C 32 35 34 2C    25,26,19,71,254,
01E3B0:  34 2C 35 36 2C 32 31 34 2C 32 36 0D 0A 09 64 62    4,56,214,26...db
01E3C0:  20 31 39 2C 32 34 2C 32 31 35 2C 32 35 35 2C 32     19,24,215,255,2
01E3D0:  32 39 2C 31 39 38 2C 31 39 32 2C 32 35 35 2C 32    29,198,192,255,2
01E3E0:  35 35 2C 32 32 39 2C 31 39 38 2C 30 2C 32 35 35    55,229,198,0,255
01E3F0:  2C 32 35 35 2C 32 32 39 2C 31 39 38 2C 30 2C 32    ,255,229,198,0,2
01E400:  35 35 0D 0A 09 64 62 20 32 35 35 2C 32 32 39 2C    55...db 255,229,
01E410:  31 39 38 2C 30 2C 32 35 35 2C 32 35 35 2C 32 32    198,0,255,255,22
01E420:  39 2C 31 39 38 2C 30 2C 32 35 35 2C 32 35 35 2C    9,198,0,255,255,
01E430:  32 32 39 2C 31 39 38 2C 30 2C 32 35 35 2C 32 35    229,198,0,255,25
01E440:  35 2C 32 32 39 2C 31 39 38 0D 0A 09 64 62 20 30    5,229,198...db 0
01E450:  2C 32 35 35 2C 32 35 35 2C 32 32 39 2C 31 39 38    ,255,255,229,198
01E460:  2C 30 2C 32 35 35 2C 32 35 35 2C 32 32 39 2C 31    ,0,255,255,229,1
01E470:  39 38 2C 30 2C 32 35 35 2C 32 35 35 2C 32 32 39    98,0,255,255,229
01E480:  2C 31 39 38 2C 30 2C 32 35 35 2C 32 35 35 0D 0A    ,198,0,255,255..
01E490:  09 64 62 20 32 32 39 2C 31 39 38 2C 30 2C 32 35    .db 229,198,0,25
01E4A0:  35 2C 32 35 35 2C 32 32 39 2C 31 39 38 2C 30 2C    5,255,229,198,0,
01E4B0:  32 35 35 2C 32 35 35 2C 32 32 39 2C 31 39 38 2C    255,255,229,198,
01E4C0:  30 2C 32 35 35 2C 32 35 35 2C 32 32 39 2C 31 39    0,255,255,229,19
01E4D0:  38 2C 30 0D 0A 09 64 62 20 32 35 35 2C 32 35 35    8,0...db 255,255
01E4E0:  2C 32 32 39 2C 31 39 38 2C 30 2C 32 35 35 2C 32    ,229,198,0,255,2
01E4F0:  35 35 2C 32 32 39 2C 31 39 38 2C 30 2C 32 35 35    55,229,198,0,255
01E500:  0D 0A 09 3B 50 6F 77 65 72 53 70 65 6C 6C 0D 0A    ...;PowerSpell..
01E510:  09 3B 28 63 29 20 31 39 39 34 20 52 69 63 68 61    .;(c) 1994 Richa
01E520:  72 64 20 46 61 69 72 68 75 72 73 74 0D 0A 0D 0A    rd Fairhurst....
01E530:  09 6F 72 67 20 26 37 38 30 30 0D 0A 09 77 72 69    .org &7800...wri
01E540:  74 65 20 22 73 70 65 6C 6C 2E 62 69 6E 22 0D 0A    te "spell.bin"..
01E550:  09 6E 6F 6C 69 73 74 0D 0A 0D 0A 69 6E 62 75 66    .nolist....inbuf
01E560:  66 09 65 71 75 20 26 31 30 30 30 0D 0A 6F 74 62    f.equ &1000..otb
01E570:  75 66 66 09 65 71 75 20 26 31 38 30 30 0D 0A 0D    uff.equ &1800...
01E580:  0A 09 3B 2A 2A 2A 20 49 4E 49 54 09 49 6E 69 74    ..;*** INIT.Init
01E590:  69 61 6C 69 73 61 74 69 6F 6E 0D 0A 0D 0A 09 63    ialisation.....c
01E5A0:  61 6C 6C 20 6C 6F 61 64 0D 0A 09 6C 64 20 61 2C    all load...ld a,
01E5B0:  32 3A 20 63 61 6C 6C 20 26 42 43 30 45 09 09 09    2: call &BC0E...
01E5C0:  09 3B 54 69 74 6C 65 20 73 63 72 65 65 6E 0D 0A    .;Title screen..
01E5D0:  09 6C 64 20 62 63 2C 26 30 44 30 44 3A 20 20 20    .ld bc,&0D0D:   
01E5E0:  20 20 20 20 20 20 63 61 6C 6C 20 26 42 43 33 38          call &BC38
01E5F0:  09 09 09 3B 20 7C 0D 0A 09 6C 64 20 62 63 2C 26    ...; |...ld bc,&
01E600:  31 41 31 41 3A 20 78 6F 72 20 61 20 3A 20 63 61    1A1A: xor a : ca
01E610:  6C 6C 20 26 42 43 33 32 09 09 09 3B 20 7C 0D 0A    ll &BC32...; |..
01E620:  09 6C 64 20 62 63 2C 26 30 30 30 30 3A 20 6C 64    .ld bc,&0000: ld
01E630:  20 61 2C 31 3A 20 63 61 6C 6C 20 26 42 43 33 32     a,1: call &BC32
01E640:  09 09 09 3B 20 7C 0D 0A 09 6C 64 20 62 63 2C 31    ...; |...ld bc,1
01E650:  3A 20 63 61 6C 6C 20 26 42 42 42 37 3A 20 6C 64    : call &BBB7: ld
01E660:  20 64 65 2C 26 30 32 30 43 3A 20 6C 64 20 68 6C     de,&020C: ld hl
01E670:  2C 26 34 44 31 33 3A 20 63 61 6C 6C 20 26 42 42    ,&4D13: call &BB
01E680:  36 36 3A 20 6C 64 20 62 63 2C 31 3A 20 63 61 6C    66: ld bc,1: cal
01E690:  6C 20 26 42 42 42 37 0D 0A 09 6C 64 20 62 63 2C    l &BBB7...ld bc,
01E6A0:  32 3A 20 63 61 6C 6C 20 26 42 42 42 37 3A 20 6C    2: call &BBB7: l
01E6B0:  64 20 64 65 2C 26 30 32 31 35 3A 20 6C 64 20 68    d de,&0215: ld h
01E6C0:  6C 2C 26 34 44 31 37 3A 20 63 61 6C 6C 20 26 42    l,&4D17: call &B
01E6D0:  42 36 36 3A 20 6C 64 20 62 63 2C 32 3A 20 63 61    B66: ld bc,2: ca
01E6E0:  6C 6C 20 26 42 42 42 37 0D 0A 2E 6F 75 74 65 72    ll &BBB7...outer
01E6F0:  09 63 61 6C 6C 20 73 63 72 65 65 6E 09 09 09 09    .call screen....
01E700:  2C 32 35 35 2C 32 32 39 2C 31 39 38 2C 30 2C 32    ,255,229,198,0,2
01E710:  35 35 2C 32 35 35 2C 32 32 39 0D 0A 09 64 62 20    55,255,229...db 
01E720:  31 39 38 2C 30 2C 32 35 35 2C 32 35 35 2C 32 32    198,0,255,255,22
01E730:  39 2C 31 39 38 2C 30 2C 32 35 35 2C 32 35 35 2C    9,198,0,255,255,
01E740:  32 32 39 2C 31 32 33 2C 30 2C 32 32 39 2C 37 2C    229,123,0,229,7,
01E750:  33 2C 32 32 39 2C 36 38 2C 30 2C 32 35 35 0D 0A    3,229,68,0,255..
01E760:  09 64 62 20 32 35 35 2C 32 32 39 2C 31 32 33 2C    .db 255,229,123,
01E770:  30 2C 32 32 34 2C 34 38 2C 35 31 2C 32 33 30 2C    0,224,48,51,230,
01E780:  31 39 38 2C 31 30 32 2C 35 31 2C 32 32 39 2C 36    198,102,51,229,6
01E790:  38 2C 30 2C 32 35 35 2C 32 35 35 2C 32 32 39 2C    8,0,255,255,229,
01E7A0:  31 32 33 0D 0A 09 64 62 20 30 2C 31 32 2C 31 32    123...db 0,12,12
01E7B0:  2C 32 30 37 2C 31 30 38 2C 31 30 38 2C 31 30 38    ,207,108,108,108
01E7C0:  2C 32 30 37 2C 32 32 39 2C 36 38 2C 30 2C 32 35    ,207,229,68,0,25
01E7D0:  35 2C 32 35 35 2C 32 32 39 2C 31 32 35 2C 30 2C    5,255,229,125,0,
01E7E0:  31 34 33 2C 32 31 37 0D 0A 09 64 62 20 32 31 37    143,217...db 217
01E7F0:  2C 32 31 37 2C 31 34 33 2C 32 32 39 2C 36 38 2C    ,217,143,229,68,
01E800:  30 2C 32 35 35 2C 32 35 35 2C 32 32 39 2C 31 32    0,255,255,229,12
01E810:  33 2C 30 2C 32 34 2C 32 34 2C 36 30 2C 31 35 32    3,0,24,24,60,152
01E820:  2C 31 35 32 2C 31 35 32 2C 31 32 0D 0A 09 64 62    ,152,152,12...db
01E830:  20 32 32 39 2C 36 38 2C 30 2C 32 35 35 2C 32 35     229,68,0,255,25
01E840:  35 2C 32 32 39 2C 31 32 33 2C 30 2C 32 32 39 2C    5,229,123,0,229,
01E850:  37 2C 31 2C 32 32 39 2C 36 38 2C 30 2C 32 35 35    7,1,229,68,0,255
01E860:  2C 32 35 35 2C 32 32 39 2C 31 32 33 2C 30 2C 32    ,255,229,123,0,2
01E870:  34 33 0D 0A 09 64 62 20 31 35 35 2C 31 35 35 2C    43...db 155,155,
01E880:  32 34 33 2C 31 33 31 2C 31 33 31 2C 31 33 31 2C    243,131,131,131,
01E890:  32 32 39 2C 36 38 2C 30 2C 32 35 35 2C 32 35 35    229,68,0,255,255
01E8A0:  2C 32 32 39 2C 31 39 2C 30 2C 32 32 39 2C 34 31    ,229,19,0,229,41
01E8B0:  2C 36 33 2C 32 32 39 0D 0A 09 64 62 20 36 33 2C    ,63,229...db 63,
01E8C0:  30 2C 32 32 34 2C 32 32 39 2C 34 2C 34 38 2C 35    0,224,229,4,48,5
01E8D0:  31 2C 32 32 37 2C 36 2C 32 32 39 2C 36 37 2C 30    1,227,6,229,67,0
01E8E0:  2C 32 35 35 2C 32 35 35 2C 32 32 39 2C 31 39 2C    ,255,255,229,19,
01E8F0:  30 2C 32 32 39 2C 34 2C 32 35 35 0D 0A 09 64 62    0,229,4,255...db
01E900:  09 3B 20 7C 0D 0A 09 63 61 6C 6C 20 26 42 42 30    .; |...call &BB0
01E910:  36 09 09 09 09 09 3B 20 7C 0D 0A 0D 0A 09 3B 2A    6.....; |.....;*
01E920:  2A 2A 20 53 45 43 54 09 4D 61 69 6E 20 6D 65 6E    ** SECT.Main men
01E930:  75 0D 0A 0D 0A 2E 6D 61 69 6E 09 63 61 6C 6C 20    u.....main.call 
01E940:  26 42 43 37 44 3A 20 63 61 6C 6C 20 26 42 43 39    &BC7D: call &BC9
01E950:  32 09 09 09 09 3B 41 62 61 6E 64 6F 6E 20 61 6E    2....;Abandon an
01E960:  79 20 66 69 6C 65 73 0D 0A 09 63 61 6C 6C 20 63    y files...call c
01E970:  6C 65 61 72 09 09 09 09 09 3B 43 6C 65 61 72 20    lear.....;Clear 
01E980:  6D 65 6E 75 20 61 72 65 61 0D 0A 09 63 61 6C 6C    menu area...call
01E990:  20 73 70 72 69 74 65 09 09 09 09 09 3B 50 72 69     sprite.....;Pri
01E9A0:  6E 74 20 6D 65 6E 75 0D 0A 09 63 61 6C 6C 20 6D    nt menu...call m
01E9B0:  65 6E 75 09 09 09 09 09 3B 47 65 74 20 72 65 73    enu.....;Get res
01E9C0:  70 6F 6E 73 65 0D 0A 0D 0A 09 6F 72 20 61 3A 20    ponse.....or a: 
01E9D0:  6A 70 20 7A 2C 6F 75 74 65 72 0D 0A 09 63 70 20    jp z,outer...cp 
01E9E0:  31 3A 20 6A 70 20 7A 2C 73 70 65 6C 6C 0D 0A 09    1: jp z,spell...
01E9F0:  63 70 20 32 3A 20 6A 70 20 7A 2C 75 5F 65 64 69    cp 2: jp z,u_edi
01EA00:  74 0D 0A 09 63 70 20 33 3A 20 6A 70 20 7A 2C 75    t...cp 3: jp z,u
01EA10:  5F 6C 6F 61 64 0D 0A 09 63 70 20 34 3A 20 6A 70    _load...cp 4: jp
01EA20:  20 7A 2C 75 5F 73 61 76 65 0D 0A 09 63 70 20 35     z,u_save...cp 5
01EA30:  3A 20 6A 70 20 7A 2C 68 65 6C 70 0D 0A 09 72 65    : jp z,help...re
01EA40:  74 0D 0A 0D 0A 0D 0A 09 3B 2A 2A 2A 20 52 4F 55    t.......;*** ROU
01EA50:  54 09 4D 65 6E 75 20 68 61 6E 64 6C 65 72 0D 0A    T.Menu handler..
01EA60:  0D 0A 2E 6D 65 6E 75 09 6C 64 20 68 6C 2C 26 45    ...menu.ld hl,&E
01EA70:  33 44 37 3A 20 6C 64 20 65 2C 31 0D 0A 2E 6D 65    3D7: ld e,1...me
01EA80:  6E 75 6C 09 70 75 73 68 20 68 6C 0D 0A 09 20 63    nul.push hl... c
01EA90:  61 6C 6C 20 68 6C 69 67 68 74 0D 0A 09 70 6F 70    all hlight...pop
01EAA0:  20 68 6C 0D 0A 2E 6D 6B 65 79 70 09 63 61 6C 6C     hl...mkeyp.call
01EAB0:  20 26 42 42 31 38 0D 0A 09 63 70 20 32 32 34 3A     &BB18...cp 224:
01EAC0:  20 6A 72 20 7A 2C 73 65 6C 65 63 74 0D 0A 09 63     jr z,select...c
01EAD0:  70 20 31 33 20 3A 20 6A 72 20 7A 2C 73 65 6C 65    p 13 : jr z,sele
01EAE0:  63 74 0D 0A 09 63 70 20 32 35 32 3A 20 6A 72 20    ct...cp 252: jr 
01EAF0:  7A 2C 65 73 63 61 70 65 0D 0A 09 63 70 20 32 34    z,escape...cp 24
01EB00:  20 31 39 32 2C 32 32 34 2C 32 32 39 2C 32 32 2C     192,224,229,22,
01EB10:  32 34 30 2C 32 32 34 2C 31 39 32 2C 32 35 35 2C    240,224,192,255,
01EB20:  32 32 39 2C 36 2C 31 39 32 2C 32 32 39 2C 34 2C    229,6,192,229,4,
01EB30:  32 35 35 2C 32 32 39 2C 31 33 38 2C 30 2C 32 35    255,229,138,0,25
01EB40:  35 0D 0A 09 64 62 20 32 35 35 2C 32 32 39 2C 31    5...db 255,229,1
01EB50:  39 2C 30 2C 32 32 39 2C 34 2C 32 35 35 2C 30 2C    9,0,229,4,255,0,
01EB60:  30 2C 32 32 39 2C 31 31 2C 36 33 2C 30 2C 30 2C    0,229,11,63,0,0,
01EB70:  32 32 39 2C 39 2C 36 33 2C 33 31 2C 31 35 2C 32    229,9,63,31,15,2
01EB80:  35 35 2C 32 32 39 0D 0A 09 64 62 20 36 2C 30 2C    55,229...db 6,0,
01EB90:  32 32 39 2C 34 2C 32 35 35 2C 32 32 39 2C 36 33    229,4,255,229,63
01EBA0:  2C 30 2C 36 32 2C 39 39 2C 33 2C 31 34 2C 32 34    ,0,62,99,3,14,24
01EBB0:  2C 34 38 2C 31 32 37 2C 32 32 39 2C 36 38 2C 30    ,48,127,229,68,0
01EBC0:  2C 32 35 35 2C 32 35 35 2C 32 32 39 0D 0A 09 64    ,255,255,229...d
01EBD0:  62 20 31 39 2C 30 2C 32 32 39 2C 34 2C 32 35 35    b 19,0,229,4,255
01EBE0:  2C 33 2C 30 2C 31 32 38 2C 32 32 34 2C 32 32 39    ,3,0,128,224,229
01EBF0:  2C 37 2C 32 34 30 2C 32 32 34 2C 31 32 38 2C 30    ,7,240,224,128,0
01EC00:  2C 37 2C 32 32 39 2C 31 32 2C 32 35 35 2C 30 2C    ,7,229,12,255,0,
01EC10:  38 0D 0A 09 64 62 20 30 2C 30 2C 32 2C 30 2C 32    8...db 0,0,2,0,2
01EC20:  32 39 2C 34 2C 32 35 35 2C 32 32 39 2C 38 2C 30    29,4,255,229,8,0
01EC30:  2C 37 2C 31 32 2C 31 32 2C 31 35 2C 31 32 2C 31    ,7,12,12,15,12,1
01EC40:  32 2C 31 32 2C 32 32 39 2C 33 36 2C 30 2C 32 32    2,12,229,36,0,22
01EC50:  39 2C 37 2C 33 0D 0A 09 64 62 20 32 32 39 2C 38    9,7,3...db 229,8
01EC60:  30 2C 30 2C 32 35 35 2C 32 35 35 2C 32 32 39 2C    0,0,255,255,229,
01EC70:  31 39 2C 30 2C 32 32 39 2C 36 2C 32 35 35 2C 31    19,0,229,6,255,1
01EC80:  32 37 2C 31 32 37 2C 32 32 39 2C 36 2C 36 33 2C    27,127,229,6,63,
01EC90:  36 30 2C 31 32 30 2C 31 31 32 0D 0A 09 64 62 20    60,120,112...db 
01ECA0:  32 34 30 2C 32 32 39 2C 36 2C 32 32 34 2C 32 34    240,229,6,224,24
01ECB0:  30 2C 32 34 30 2C 32 34 38 2C 32 35 32 2C 32 35    0,240,248,252,25
01ECC0:  35 2C 32 35 35 2C 32 35 35 2C 38 2C 31 2C 36 38    5,255,255,8,1,68
01ECD0:  2C 31 2C 31 38 2C 30 2C 32 32 39 2C 34 2C 32 35    ,1,18,0,229,4,25
01ECE0:  35 0D 0A 09 64 62 20 32 32 39 2C 38 2C 30 2C 31    5...db 229,8,0,1
01ECF0:  32 39 2C 31 39 33 2C 32 30 37 2C 32 31 37 2C 32    29,193,207,217,2
01ED00:  31 3A 20 6A 72 20 7A 2C 63 64 6F 77 6E 0D 0A 09    1: jr z,cdown...
01ED10:  63 70 20 33 32 20 3A 20 6A 72 20 7A 2C 63 64 6F    cp 32 : jr z,cdo
01ED20:  77 6E 0D 0A 09 63 70 20 32 34 30 3A 20 6A 72 20    wn...cp 240: jr 
01ED30:  7A 2C 63 75 70 0D 0A 09 6A 72 20 6D 6B 65 79 70    z,cup...jr mkeyp
01ED40:  0D 0A 0D 0A 2E 63 64 6F 77 6E 09 6C 64 20 61 2C    .....cdown.ld a,
01ED50:  65 3A 20 63 70 20 35 3A 20 6A 72 20 7A 2C 6D 6B    e: cp 5: jr z,mk
01ED60:  65 79 70 0D 0A 09 70 75 73 68 20 68 6C 0D 0A 09    eyp...push hl...
01ED70:  20 63 61 6C 6C 20 72 65 6D 76 68 6C 0D 0A 09 70     call remvhl...p
01ED80:  6F 70 20 68 6C 0D 0A 09 6C 64 20 62 63 2C 31 36    op hl...ld bc,16
01ED90:  30 3A 20 61 64 64 20 68 6C 2C 62 63 0D 0A 09 69    0: add hl,bc...i
01EDA0:  6E 63 20 65 3A 20 6A 72 20 6D 65 6E 75 6C 0D 0A    nc e: jr menul..
01EDB0:  0D 0A 2E 63 75 70 09 6C 64 20 61 2C 65 3A 20 63    ...cup.ld a,e: c
01EDC0:  70 20 31 3A 20 6A 72 20 7A 2C 6D 6B 65 79 70 0D    p 1: jr z,mkeyp.
01EDD0:  0A 09 70 75 73 68 20 68 6C 0D 0A 09 20 63 61 6C    ..push hl... cal
01EDE0:  6C 20 72 65 6D 76 68 6C 0D 0A 09 70 6F 70 20 68    l remvhl...pop h
01EDF0:  6C 0D 0A 09 6C 64 20 62 63 2C 26 46 46 36 30 3A    l...ld bc,&FF60:
01EE00:  20 61 64 64 20 68 6C 2C 62 63 0D 0A 09 64 65 63     add hl,bc...dec
01EE10:  20 65 3A 20 6A 72 20 6D 65 6E 75 6C 0D 0A 0D 0A     e: jr menul....
01EE20:  2E 65 73 63 61 70 65 09 6C 64 20 65 2C 30 0D 0A    .escape.ld e,0..
01EE30:  2E 73 65 6C 65 63 74 09 6C 64 20 61 2C 65 3A 20    .select.ld a,e: 
01EE40:  72 65 74 0D 0A 0D 0A 09 3B 2A 2A 2A 20 53 55 42    ret.....;*** SUB
01EE50:  52 09 50 72 69 6E 74 20 6D 65 6E 75 20 73 70 72    R.Print menu spr
01EE60:  69 74 65 0D 0A 0D 0A 2E 73 70 72 69 74 65 09 6C    ite.....sprite.l
01EE70:  64 20 64 65 2C 26 46 33 44 37 3A 20 6C 64 20 62    d de,&F3D7: ld b
01EE80:  2C 37 31 0D 0A 09 6C 64 20 68 6C 2C 6D 65 6E 75    ,71...ld hl,menu
01EE90:  73 70 0D 0A 2E 73 70 6C 6F 6F 70 09 70 75 73 68    sp...sploop.push
01EEA0:  20 62 63 3A 20 70 75 73 68 20 64 65 0D 0A 09 20     bc: push de... 
01EEB0:  6C 64 20 62 63 2C 33 33 3A 20 6C 64 69 72 0D 0A    ld bc,33: ldir..
01EEC0:  09 70 6F 70 20 64 65 3A 20 70 6F 70 20 62 63 0D    .pop de: pop bc.
01EED0:  0A 09 65 78 20 64 65 2C 68 6C 0D 0A 09 20 63 61    ..ex de,hl... ca
01EEE0:  6C 6C 20 26 42 43 32 36 0D 0A 09 65 78 20 64 65    ll &BC26...ex de
01EEF0:  2C 68 6C 0D 0A 09 64 6A 6E 7A 20 73 70 6C 6F 6F    ,hl...djnz sploo
01EF00:  54 72 61 63 6B 2D 49 6E 66 6F 0D 0A 00 00 00 00    Track-Info......
01EF10:  1A 00 01 00 02 09 4E E5 1A 00 C3 02 00 00 00 02    ......N.........
01EF20:  1A 00 C8 02 00 00 00 02 1A 00 C4 02 00 00 00 02    ................
01EF30:  1A 00 C9 02 00 00 00 02 1A 00 C5 02 00 00 00 02    ................
01EF40:  1A 00 C1 02 00 00 00 02 1A 00 C6 02 00 00 00 02    ................
01EF50:  1A 00 C2 02 00 00 00 02 1A 00 C7 02 00 00 00 02    ................
01EF60:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
01EF70:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
01EF80:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
01EF90:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
01EFA0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
01EFB0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
01EFC0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
01EFD0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
01EFE0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
01EFF0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
01F000:  2C 32 35 35 2C 32 32 39 2C 31 39 2C 30 2C 32 32    ,255,229,19,0,22
01F010:  39 2C 31 33 2C 32 35 35 2C 32 35 32 0D 0A 09 64    9,13,255,252...d
01F020:  62 20 32 34 31 2C 32 32 37 2C 31 39 35 2C 31 39    b 241,227,195,19
01F030:  35 2C 31 32 38 2C 32 32 39 2C 36 2C 31 33 31 2C    5,128,229,6,131,
01F040:  31 39 33 2C 31 39 32 2C 32 34 30 2C 32 34 38 2C    193,192,240,248,
01F050:  32 35 35 2C 32 35 35 2C 32 32 33 2C 31 37 31 2C    255,255,223,171,
01F060:  39 33 0D 0A 09 64 62 20 31 31 31 2C 31 38 33 2C    93...db 111,183,
01F070:  32 31 38 2C 32 32 39 2C 34 2C 32 35 35 2C 32 32    218,229,4,255,22
01F080:  39 2C 38 2C 30 2C 33 2C 36 2C 33 2C 31 2C 30 2C    9,8,0,3,6,3,1,0,
01F090:  36 2C 33 2C 32 32 39 2C 33 36 2C 30 2C 36 2C 36    6,3,229,36,0,6,6
01F0A0:  2C 36 32 2C 31 30 32 0D 0A 09 64 62 20 31 30 32    ,62,102...db 102
01F0B0:  2C 31 30 32 2C 36 32 2C 32 32 39 2C 37 2C 30 2C    ,102,62,229,7,0,
01F0C0:  32 34 31 2C 32 37 2C 32 35 31 2C 31 35 35 2C 32    241,27,251,155,2
01F0D0:  34 39 2C 32 32 39 2C 34 36 2C 30 2C 32 34 33 2C    49,229,46,0,243,
01F0E0:  36 2C 32 32 37 2C 34 38 2C 32 33 31 0D 0A 09 64    6,227,48,231...d
01F0F0:  62 20 32 32 39 2C 31 37 2C 30 2C 32 35 35 2C 32    b 229,17,0,255,2
01F100:  35 35 2C 32 32 39 2C 31 39 2C 30 2C 32 32 39 2C    55,229,19,0,229,
01F110:  31 32 2C 32 35 35 2C 33 2C 32 34 30 2C 32 35 32    12,255,3,240,252
01F120:  2C 32 35 34 2C 32 35 34 2C 32 35 34 2C 30 2C 32    ,254,254,254,0,2
01F130:  32 39 0D 0A 09 64 62 20 38 2C 32 35 35 2C 30 2C    29...db 8,255,0,
01F140:  30 2C 33 2C 32 35 35 2C 32 31 39 2C 31 32 37 2C    0,3,255,219,127,
01F150:  32 34 37 2C 31 39 31 2C 32 35 31 2C 32 33 38 2C    247,191,251,238,
01F160:  32 32 39 2C 34 2C 32 35 35 2C 32 32 39 2C 38 2C    229,4,255,229,8,
01F170:  30 2C 31 39 32 2C 39 36 0D 0A 09 64 62 20 31 35    0,192,96...db 15
01F180:  2C 31 34 30 2C 32 30 34 2C 31 31 31 2C 32 30 34    ,140,204,111,204
01F190:  2C 31 32 2C 32 32 39 2C 34 37 2C 30 2C 34 38 2C    ,12,229,47,0,48,
01F1A0:  34 38 2C 32 34 30 2C 34 38 2C 34 38 2C 35 31 2C    48,240,48,48,51,
01F1B0:  32 34 33 2C 36 2C 32 32 39 2C 34 35 0D 0A 09 64    243,6,229,45...d
01F1C0:  62 20 30 2C 32 32 34 2C 30 2C 31 39 32 2C 39 36    b 0,224,0,192,96
01F1D0:  2C 31 39 32 2C 32 32 39 2C 31 37 2C 30 2C 32 35    ,192,229,17,0,25
01F1E0:  35 2C 32 35 35 2C 32 32 39 2C 31 39 2C 30 2C 32    5,255,229,19,0,2
01F1F0:  32 39 2C 31 33 2C 32 35 35 2C 31 32 30 2C 36 32    29,13,255,120,62
01F200:  32 34 38 2C 32 30 34 2C 32 30 35 2C 32 34 39 2C    248,204,205,249,
01F210:  32 34 31 2C 32 31 37 2C 32 30 34 0D 0A 09 64 62    241,217,204...db
01F220:  20 32 32 39 2C 36 38 2C 30 2C 32 35 35 2C 32 35     229,68,0,255,25
01F230:  35 2C 32 32 39 2C 31 39 2C 30 2C 32 32 39 2C 31    5,229,19,0,229,1
01F240:  32 2C 32 35 35 2C 32 34 38 2C 32 33 31 2C 31 34    2,255,248,231,14
01F250:  33 2C 33 31 2C 33 31 2C 33 31 2C 30 2C 32 32 39    3,31,31,31,0,229
01F260:  0D 0A 09 64 62 20 36 2C 33 31 2C 31 35 2C 37 2C    ...db 6,31,15,7,
01F270:  31 32 38 2C 31 39 32 2C 32 34 38 2C 32 32 39 2C    128,192,248,229,
01F280:  31 31 2C 32 35 35 2C 32 32 39 2C 38 2C 30 2C 31    11,255,229,8,0,1
01F290:  32 38 2C 31 32 38 2C 31 35 33 2C 31 37 39 2C 32    28,128,153,179,2
01F2A0:  32 37 2C 31 37 39 0D 0A 09 64 62 20 31 35 33 2C    27,179...db 153,
01F2B0:  32 32 39 2C 33 36 2C 30 2C 33 31 2C 31 37 37 2C    229,36,0,31,177,
01F2C0:  31 37 37 2C 31 35 39 2C 31 32 39 2C 33 2C 33 30    177,159,129,3,30
01F2D0:  2C 32 32 39 2C 35 2C 30 2C 31 2C 31 2C 31 35 35    ,229,5,0,1,1,155
01F2E0:  2C 31 35 33 2C 31 35 33 2C 31 35 33 0D 0A 09 64    ,153,153,153...d
01F2F0:  62 20 32 34 38 2C 32 32 39 2C 36 38 2C 30 2C 32    b 248,229,68,0,2
01F300:  35 35 2C 32 35 35 2C 32 32 39 2C 31 39 2C 30 2C    55,255,229,19,0,
01F310:  32 32 39 2C 31 32 2C 32 35 35 2C 33 31 2C 31 33    229,12,255,31,13
01F320:  31 2C 32 32 35 2C 32 34 30 2C 32 34 30 2C 32 34    1,225,240,240,24
01F330:  30 0D 0A 09 64 62 20 30 2C 32 32 39 2C 36 2C 32    0...db 0,229,6,2
01F340:  35 35 2C 32 35 34 2C 32 34 38 2C 31 2C 37 2C 33    55,254,248,1,7,3
01F350:  31 2C 32 32 39 2C 31 31 2C 32 35 35 2C 32 32 39    1,229,11,255,229
01F360:  2C 31 30 2C 30 2C 32 33 30 2C 35 35 2C 32 34 36    ,10,0,230,55,246
01F370:  2C 36 2C 32 33 30 0D 0A 09 64 62 20 32 32 39 2C    ,6,230...db 229,
01F380:  33 36 2C 30 2C 37 2C 31 34 33 2C 31 35 35 2C 31    36,0,7,143,155,1
01F390:  37 39 2C 31 39 31 2C 33 2C 33 2C 32 32 39 2C 35    79,191,3,3,229,5
01F3A0:  2C 30 2C 31 35 36 2C 31 34 30 2C 32 30 34 2C 31    ,0,156,140,204,1
01F3B0:  34 30 2C 31 34 30 2C 31 34 31 0D 0A 09 64 62 20    40,140,141...db 
01F3C0:  32 30 34 2C 32 32 39 2C 36 38 2C 30 2C 32 35 35    204,229,68,0,255
01F3D0:  2C 32 35 35 2C 32 32 39 2C 31 39 2C 30 2C 32 32    ,255,229,19,0,22
01F3E0:  39 2C 34 2C 32 35 35 2C 32 35 32 2C 31 39 32 2C    9,4,255,252,192,
01F3F0:  32 32 39 2C 31 30 2C 32 34 30 2C 31 31 32 0D 0A    229,10,240,112..
01F400:  0D 0A 09 64 62 20 33 30 2C 31 34 2C 31 34 2C 31    ...db 30,14,14,1
01F410:  34 2C 32 32 39 2C 34 2C 32 35 34 2C 32 33 38 2C    4,229,4,254,238,
01F420:  32 33 38 2C 32 30 36 2C 33 30 2C 36 32 2C 32 35    238,206,30,62,25
01F430:  32 2C 32 34 38 2C 32 35 35 2C 32 34 37 2C 31 32    2,248,255,247,12
01F440:  35 2C 32 33 39 0D 0A 09 64 62 20 31 31 38 2C 32    5,239...db 118,2
01F450:  32 33 2C 32 33 37 2C 32 32 39 2C 34 2C 32 35 35    23,237,229,4,255
01F460:  2C 32 32 39 2C 31 30 2C 30 2C 31 34 33 2C 32 31    ,229,10,0,143,21
01F470:  37 2C 32 32 33 2C 31 35 32 2C 31 35 2C 32 32 39    7,223,152,15,229
01F480:  2C 33 36 2C 30 2C 32 34 38 0D 0A 09 64 62 20 31    ,36,0,248...db 1
01F490:  39 32 2C 31 39 33 2C 32 34 30 2C 31 39 33 2C 31    92,193,240,193,1
01F4A0:  39 35 2C 31 39 33 2C 32 32 39 2C 35 38 2C 30 2C    95,193,229,58,0,
01F4B0:  37 2C 30 2C 37 2C 31 32 2C 37 2C 32 32 39 2C 31    7,0,7,12,7,229,1
01F4C0:  37 2C 30 2C 32 35 35 2C 32 35 35 2C 32 32 39 0D    7,0,255,255,229.
01F4D0:  0A 09 64 62 20 31 39 2C 30 2C 32 32 39 2C 31 32    ..db 19,0,229,12
01F4E0:  2C 32 35 35 2C 31 34 2C 38 2C 33 2C 37 2C 32 32    ,255,14,8,3,7,22
01F4F0:  39 2C 31 32 2C 31 35 2C 37 2C 33 2C 32 35 35 2C    9,12,15,7,3,255,
01F500:  31 32 36 2C 32 33 39 2C 31 38 39 2C 32 33 39 2C    126,239,189,239,
01F510:  31 39 30 0D 0A 09 64 62 20 32 34 37 2C 32 32 39    190...db 247,229
01F520:  2C 34 2C 32 35 35 2C 32 32 39 2C 38 2C 30 2C 35    ,4,255,229,8,0,5
01F530:  39 2C 32 35 2C 32 35 2C 31 35 33 2C 31 35 33 2C    9,25,25,153,153,
01F540:  32 35 2C 32 35 2C 32 32 39 2C 33 36 2C 30 2C 36    25,25,229,36,0,6
01F550:  2C 30 2C 32 33 30 2C 35 34 0D 0A 09 64 62 20 32    ,0,230,54...db 2
01F560:  34 36 2C 35 34 2C 32 34 36 2C 32 32 39 2C 35 2C    46,54,246,229,5,
01F570:  30 2C 36 30 2C 32 32 39 2C 35 2C 31 30 32 2C 36    0,60,229,5,102,6
01F580:  30 2C 32 32 39 2C 34 36 2C 30 2C 31 35 39 2C 32    0,229,46,0,159,2
01F590:  32 39 2C 34 2C 32 31 37 2C 32 32 39 2C 31 37 0D    29,4,217,229,17.
01F5A0:  0A 09 64 62 20 30 2C 32 35 35 2C 32 35 35 2C 32    ..db 0,255,255,2
01F5B0:  32 39 2C 31 39 2C 30 2C 32 32 39 2C 35 2C 32 35    29,19,0,229,5,25
01F5C0:  35 2C 32 35 34 2C 32 35 32 2C 32 35 32 2C 32 32    5,254,252,252,22
01F5D0:  39 2C 34 2C 32 34 38 2C 32 34 2C 38 2C 31 34 30    9,4,248,24,8,140
01F5E0:  2C 32 35 32 0D 0A 09 64 62 20 32 35 34 2C 32 32    ,252...db 254,22
01F5F0:  39 2C 34 2C 32 35 35 2C 32 35 31 2C 32 34 39 2C    9,4,255,251,249,
01F600:  09 64 62 20 31 31 32 2C 31 31 32 2C 32 32 39 2C    .db 112,112,229,
01F610:  34 2C 32 34 30 2C 31 31 32 2C 31 31 32 2C 31 31    4,240,112,112,11
01F620:  32 2C 32 34 30 2C 32 34 30 2C 32 32 34 2C 31 39    2,240,240,224,19
01F630:  32 2C 32 32 39 2C 31 31 2C 32 35 35 2C 32 32 39    2,229,11,255,229
01F640:  2C 31 30 0D 0A 09 64 62 20 30 2C 31 39 32 2C 32    ,10...db 0,192,2
01F650:  32 39 2C 34 34 2C 30 2C 31 32 38 2C 32 32 39 2C    29,44,0,128,229,
01F660:  39 2C 30 2C 32 34 33 2C 32 37 2C 32 35 31 2C 31    9,0,243,27,251,1
01F670:  35 35 2C 32 35 31 2C 32 32 39 2C 36 38 2C 30 2C    55,251,229,68,0,
01F680:  32 35 35 2C 32 35 35 0D 0A 09 64 62 20 32 32 39    255,255...db 229
01F690:  2C 31 39 2C 30 2C 32 32 39 2C 34 2C 32 35 35 2C    ,19,0,229,4,255,
01F6A0:  31 32 37 2C 31 31 32 2C 32 32 39 2C 32 32 2C 31    127,112,229,22,1
01F6B0:  32 34 2C 35 36 2C 31 36 2C 32 32 39 2C 31 31 2C    24,56,16,229,11,
01F6C0:  32 35 35 2C 32 32 39 2C 36 35 2C 30 0D 0A 09 64    255,229,65,0...d
01F6D0:  62 20 32 32 37 2C 35 34 2C 35 34 2C 35 34 2C 35    b 227,54,54,54,5
01F6E0:  31 2C 32 32 39 2C 36 38 2C 30 2C 32 35 35 2C 32    1,229,68,0,255,2
01F6F0:  35 35 2C 32 32 39 2C 31 39 2C 30 2C 32 32 39 2C    55,229,19,0,229,
01F700:  34 2C 32 35 35 2C 32 32 39 2C 32 34 2C 33 31 2C    4,255,229,24,31,
01F710:  31 35 0D 0A 09 64 62 20 37 2C 32 32 39 2C 31 31    15...db 7,229,11
01F720:  2C 32 35 35 2C 32 32 39 2C 36 33 2C 30 2C 39 36    ,255,229,63,0,96
01F730:  2C 39 36 2C 32 32 34 2C 39 36 2C 39 36 2C 39 36    ,96,224,96,96,96
01F740:  2C 32 32 34 2C 32 32 39 2C 36 38 2C 30 2C 32 35    ,224,229,68,0,25
01F750:  35 2C 32 35 35 2C 32 32 39 0D 0A 09 64 62 20 31    5,255,229...db 1
01F760:  39 2C 30 2C 32 32 39 2C 34 31 2C 32 34 38 2C 32    9,0,229,41,248,2
01F770:  32 39 2C 36 33 2C 30 2C 32 32 39 2C 36 2C 31 32    29,63,0,229,6,12
01F780:  2C 31 35 2C 32 32 39 2C 36 38 2C 30 2C 32 35 35    ,15,229,68,0,255
01F790:  2C 32 35 35 2C 32 32 39 2C 31 32 33 2C 30 0D 0A    ,255,229,123,0..
01F7A0:  09 64 62 20 36 32 2C 34 38 2C 34 38 2C 36 30 2C    .db 62,48,48,60,
01F7B0:  34 38 2C 34 38 2C 31 39 30 2C 32 32 39 2C 36 38    48,48,190,229,68
01F7C0:  2C 30 2C 32 35 35 2C 32 35 35 2C 32 32 39 2C 31    ,0,255,255,229,1
01F7D0:  32 33 2C 30 2C 31 31 31 2C 32 33 36 2C 31 31 31    23,0,111,236,111
01F7E0:  2C 31 31 30 0D 0A 09 64 62 20 39 36 2C 31 30 38    ,110...db 96,108
01F7F0:  2C 31 30 33 2C 32 32 39 2C 36 38 2C 30 2C 32 35    ,103,229,68,0,25
01F800:  32 34 39 2C 32 32 39 2C 34 2C 32 34 38 2C 32 34    249,229,4,248,24
01F810:  39 2C 32 35 31 2C 32 35 35 2C 31 39 30 2C 32 33    9,251,255,190,23
01F820:  39 2C 31 38 39 2C 32 34 37 0D 0A 09 64 62 20 32    9,189,247...db 2
01F830:  35 35 2C 32 32 33 2C 32 32 39 2C 34 2C 32 35 35    55,223,229,4,255
01F840:  2C 32 32 39 2C 38 2C 30 2C 31 37 36 2C 31 32 38    ,229,8,0,176,128
01F850:  2C 31 38 33 2C 32 32 39 2C 34 2C 31 38 32 2C 32    ,183,229,4,182,2
01F860:  32 39 2C 33 36 2C 30 2C 33 2C 33 2C 32 31 39 0D    29,36,0,3,3,219.
01F870:  0A 09 64 62 20 32 32 37 2C 31 39 35 2C 31 39 35    ..db 227,195,195
01F880:  2C 31 39 35 2C 32 32 39 2C 35 2C 30 2C 31 2C 31    ,195,229,5,0,1,1
01F890:  2C 31 32 31 2C 31 33 2C 31 32 35 2C 32 30 35 2C    ,121,13,125,205,
01F8A0:  31 32 35 2C 32 32 39 2C 34 36 2C 30 2C 35 31 2C    125,229,46,0,51,
01F8B0:  31 37 39 0D 0A 09 64 62 20 31 37 39 2C 31 35 39    179...db 179,159
01F8C0:  2C 31 33 31 2C 32 38 2C 32 32 39 2C 31 36 2C 30    ,131,28,229,16,0
01F8D0:  2C 32 35 35 2C 32 35 35 2C 32 32 39 2C 31 39 2C    ,255,255,229,19,
01F8E0:  30 2C 32 32 39 2C 34 2C 32 35 35 2C 31 32 38 2C    0,229,4,255,128,
01F8F0:  30 2C 37 2C 33 31 2C 32 32 39 0D 0A 09 64 62 20    0,7,31,229...db 
01F900:  34 2C 36 33 2C 33 31 2C 37 2C 30 2C 30 2C 30 2C    4,63,31,7,0,0,0,
01F910:  31 32 38 2C 32 34 38 2C 32 32 39 2C 36 2C 32 35    128,248,229,6,25
01F920:  35 2C 31 32 37 2C 36 33 2C 31 33 35 2C 31 39 32    5,127,63,135,192
01F930:  2C 32 34 38 2C 32 35 35 2C 32 35 31 2C 32 32 33    ,248,255,251,223
01F940:  0D 0A 09 64 62 20 32 35 34 2C 31 32 37 2C 32 34    ...db 254,127,24
01F950:  37 2C 31 39 31 2C 32 32 39 2C 34 2C 32 35 35 2C    7,191,229,4,255,
01F960:  32 32 39 2C 31 30 2C 30 2C 31 39 39 2C 31 30 38    229,10,0,199,108
01F970:  2C 31 30 38 2C 31 30 33 2C 39 36 2C 37 2C 32 32    ,108,103,96,7,22
01F980:  39 2C 33 37 0D 0A 09 64 62 20 30 2C 32 33 30 2C    9,37...db 0,230,
01F990:  35 34 2C 35 34 2C 35 34 2C 35 31 2C 32 32 39 2C    54,54,54,51,229,
01F9A0:  35 2C 30 2C 31 33 31 2C 31 33 31 2C 31 35 35 2C    5,0,131,131,155,
01F9B0:  31 37 39 2C 32 32 37 2C 31 37 39 2C 31 35 35 2C    179,227,179,155,
01F9C0:  32 32 39 2C 36 38 2C 30 0D 0A 09 64 62 20 32 35    229,68,0...db 25
01F9D0:  35 2C 32 35 35 2C 32 32 39 2C 31 39 2C 30 2C 32    5,255,229,19,0,2
01F9E0:  32 39 2C 34 2C 32 35 35 2C 37 2C 30 2C 32 34 38    29,4,255,7,0,248
01F9F0:  2C 32 32 39 2C 37 2C 32 35 35 2C 31 32 37 2C 37    ,229,7,255,127,7
01FA00:  39 2C 36 38 2C 30 2C 32 35 35 0D 0A 09 64 62 20    9,68,0,255...db 
01FA10:  32 35 35 2C 32 32 39 2C 31 39 2C 30 2C 32 32 39    255,229,19,0,229
01FA20:  2C 31 32 2C 32 35 35 2C 31 32 38 2C 31 39 32 2C    ,12,255,128,192,
01FA30:  32 32 34 2C 32 32 34 2C 32 34 30 2C 32 34 30 2C    224,224,240,240,
01FA40:  32 34 38 2C 32 34 38 2C 32 35 32 2C 32 35 32 0D    248,248,252,252.
01FA50:  0A 09 64 62 20 32 35 34 2C 32 35 34 2C 32 32 39    ..db 254,254,229
01FA60:  2C 37 2C 32 35 35 2C 31 37 30 2C 38 35 2C 31 37    ,7,255,170,85,17
01FA70:  30 2C 38 35 2C 31 37 30 2C 38 35 2C 32 32 39 2C    0,85,170,85,229,
01FA80:  34 2C 32 35 35 2C 32 32 39 2C 31 30 2C 30 2C 31    4,255,229,10,0,1
01FA90:  32 34 2C 32 32 39 0D 0A 09 64 62 20 34 2C 31 30    24,229...db 4,10
01FAA0:  32 2C 32 32 39 2C 33 36 2C 30 2C 31 35 32 2C 31    2,229,36,0,152,1
01FAB0:  39 32 2C 32 31 37 2C 31 35 35 2C 32 37 2C 31 35    92,217,155,27,15
01FAC0:  35 2C 32 31 37 2C 32 32 39 2C 35 2C 30 2C 36 2C    5,217,229,5,0,6,
01FAD0:  36 2C 32 30 37 2C 31 30 32 2C 31 30 32 0D 0A 09    6,207,102,102...
01FAE0:  64 62 20 31 30 32 2C 39 39 2C 32 32 39 2C 36 38    db 102,99,229,68
01FAF0:  2C 30 2C 32 35 35 2C 32 35 35 2C 32 32 39 2C 31    ,0,255,255,229,1
01FB00:  39 2C 30 2C 32 32 39 2C 31 32 2C 32 35 35 2C 31    9,0,229,12,255,1
01FB10:  31 32 2C 32 34 38 2C 32 35 32 2C 32 35 32 2C 31    12,248,252,252,1
01FB20:  32 36 0D 0A 09 64 62 20 31 32 36 2C 36 32 2C 36    26...db 126,62,6
01FB30:  32 2C 32 38 2C 32 38 2C 39 2C 39 2C 33 2C 33 2C    2,28,28,9,9,3,3,
01FB40:  31 33 35 2C 31 33 35 2C 32 30 37 2C 32 30 37 2C    135,135,207,207,
01FB50:  32 35 35 2C 31 37 30 2C 38 35 2C 31 37 30 2C 38    255,170,85,170,8
01FB60:  35 2C 31 37 30 2C 38 35 0D 0A 09 64 62 20 32 32    5,170,85...db 22
01FB70:  39 2C 34 2C 32 35 35 2C 32 32 39 2C 31 30 2C 30    9,4,255,229,10,0
01FB80:  2C 31 32 30 2C 32 30 35 2C 31 39 33 2C 32 30 35    ,120,205,193,205
01FB90:  2C 31 32 30 2C 32 32 39 2C 33 36 2C 30 2C 36 2C    ,120,229,36,0,6,
01FBA0:  36 2C 32 33 31 2C 35 34 2C 36 2C 35 34 0D 0A 09    6,231,54,6,54...
01FBB0:  64 62 20 32 33 30 2C 32 32 39 2C 35 36 2C 30 2C    db 230,229,56,0,
01FBC0:  36 32 2C 35 31 2C 35 31 2C 36 32 2C 34 38 2C 34    62,51,51,62,48,4
01FBD0:  38 2C 34 38 2C 32 32 39 2C 31 37 2C 30 2C 32 35    8,48,229,17,0,25
01FBE0:  35 2C 32 35 35 2C 32 32 39 2C 31 39 2C 30 2C 32    5,255,229,19,0,2
01FBF0:  32 39 0D 0A 09 64 62 20 31 32 2C 32 35 35 2C 31    29...db 12,255,1
01FC00:  2C 30 2C 30 2C 30 2C 31 32 38 2C 32 34 38 0D 0A    ,0,0,0,128,248..
01FC10:  09 64 62 20 32 35 34 2C 32 32 39 2C 34 2C 32 35    .db 254,229,4,25
01FC20:  35 2C 32 35 34 2C 32 34 38 2C 30 2C 30 2C 32 35    5,254,248,0,0,25
01FC30:  35 2C 31 39 31 2C 32 35 35 2C 32 35 35 2C 32 33    5,191,255,255,23
01FC40:  39 2C 32 35 35 2C 32 32 33 2C 32 32 39 2C 34 2C    9,255,223,229,4,
01FC50:  32 35 35 0D 0A 09 64 62 20 32 32 39 2C 31 30 2C    255...db 229,10,
01FC60:  30 2C 32 32 39 2C 35 2C 31 39 32 2C 31 32 38 2C    0,229,5,192,128,
01FC70:  32 32 39 2C 33 37 2C 30 2C 31 30 39 2C 31 31 30    229,37,0,109,110
01FC80:  2C 31 30 38 2C 31 30 38 2C 32 33 36 2C 32 32 39    ,108,108,236,229
01FC90:  2C 37 2C 30 2C 32 32 37 0D 0A 09 64 62 20 34 38    ,7,0,227...db 48
01FCA0:  2C 35 31 2C 35 34 2C 35 31 2C 32 32 39 2C 34 34    ,51,54,51,229,44
01FCB0:  2C 30 2C 39 36 2C 39 36 2C 31 30 32 2C 31 30 38    ,0,96,96,102,108
01FCC0:  2C 31 32 30 2C 31 30 38 2C 31 30 32 2C 32 32 39    ,120,108,102,229
01FCD0:  2C 31 37 2C 30 2C 32 35 35 2C 32 35 35 0D 0A 09    ,17,0,255,255...
01FCE0:  64 62 20 32 32 39 2C 31 39 2C 30 2C 32 32 39 2C    db 229,19,0,229,
01FCF0:  34 2C 32 35 35 2C 32 34 37 2C 32 33 31 2C 37 31    4,255,247,231,71
01FD00:  2C 37 2C 31 33 35 2C 31 39 39 2C 32 33 31 2C 32    ,7,135,199,231,2
01FD10:  33 31 2C 32 34 37 2C 32 35 32 2C 32 35 35 2C 32    31,247,252,255,2
01FD20:  35 35 0D 0A 09 64 62 20 32 35 35 2C 33 31 2C 31    55...db 255,31,1
01FD30:  35 2C 31 35 2C 32 32 39 2C 36 2C 37 2C 31 35 2C    5,15,229,6,7,15,
01FD40:  31 35 2C 33 31 2C 31 32 37 2C 32 32 39 2C 36 2C    15,31,127,229,6,
01FD50:  32 35 35 2C 32 35 32 2C 32 32 39 2C 34 2C 32 35    255,252,229,4,25
01FD60:  35 2C 32 32 39 2C 38 0D 0A 09 64 62 20 30 2C 31    5,229,8...db 0,1
01FD70:  35 2C 32 35 2C 32 34 2C 32 34 2C 32 34 2C 32 35    5,25,24,24,24,25
01FD80:  2C 31 35 2C 32 32 39 2C 33 38 2C 30 2C 31 35 39    ,15,229,38,0,159
01FD90:  2C 34 38 2C 33 30 2C 33 2C 36 32 2C 32 32 39 2C    ,48,30,3,62,229,
01FDA0:  37 2C 30 2C 31 39 38 2C 31 31 31 0D 0A 09 64 62    7,0,198,111...db
01FDB0:  20 32 33 37 2C 31 30 38 2C 32 33 36 2C 32 32 39     237,108,236,229
01FDC0:  2C 34 36 2C 30 2C 31 32 31 2C 32 30 35 2C 32 35    ,46,0,121,205,25
01FDD0:  33 2C 31 39 32 2C 31 32 30 2C 32 32 39 2C 31 37    3,192,120,229,17
01FDE0:  2C 30 2C 32 35 35 2C 32 35 35 2C 32 32 39 2C 31    ,0,255,255,229,1
01FDF0:  39 0D 0A 09 64 62 20 30 2C 32 32 39 2C 31 32 2C    9...db 0,229,12,
01FE00:  35 2C 33 31 2C 33 31 2C 33 31 2C 31 35 2C 31 35    5,31,31,31,15,15
01FE10:  2C 37 2C 37 2C 31 33 31 2C 31 33 31 2C 31 39 33    ,7,7,131,131,193
01FE20:  2C 31 39 33 2C 32 32 34 2C 32 32 34 2C 32 34 30    ,193,224,224,240
01FE30:  2C 32 34 30 2C 32 34 39 0D 0A 09 64 62 20 32 34    ,240,249...db 24
01FE40:  39 2C 32 35 35 2C 31 37 31 2C 38 35 2C 31 37 30    9,255,171,85,170
01FE50:  2C 38 35 2C 31 37 30 2C 38 36 2C 32 32 39 2C 34    ,85,170,86,229,4
01FE60:  2C 32 35 35 2C 32 32 39 2C 31 30 2C 30 2C 32 34    ,255,229,10,0,24
01FE70:  31 2C 31 35 35 2C 32 35 31 2C 31 33 31 0D 0A 09    1,155,251,131...
01FE80:  64 62 20 32 34 31 2C 32 32 39 2C 33 38 2C 30 2C    db 241,229,38,0,
01FE90:  31 39 39 2C 39 36 2C 31 30 33 2C 31 30 38 2C 31    199,96,103,108,1
01FEA0:  30 33 2C 32 32 39 2C 35 2C 30 2C 31 32 34 2C 31    03,229,5,0,124,1
01FEB0:  30 32 2C 31 30 32 2C 31 32 34 2C 31 32 30 2C 31    02,102,124,120,1
01FEC0:  30 38 0D 0A 09 64 62 20 31 30 32 2C 32 32 39 2C    08...db 102,229,
01FED0:  34 36 2C 30 2C 31 30 38 2C 31 31 33 2C 39 37 2C    46,0,108,113,97,
01FEE0:  39 37 2C 39 36 2C 32 32 39 2C 31 37 2C 30 2C 32    97,96,229,17,0,2
01FEF0:  35 35 2C 32 35 35 2C 32 32 39 2C 31 39 2C 30 2C    55,255,229,19,0,
01FF00:  32 32 39 2C 31 32 0D 0A 09 64 62 20 32 35 35 2C    229,12...db 255,
01FF10:  32 32 34 2C 32 34 31 2C 32 34 33 2C 32 34 33 2C    224,241,243,243,
01FF20:  32 33 31 2C 32 33 31 2C 32 30 37 2C 32 30 37 2C    231,231,207,207,
01FF30:  31 35 39 2C 31 35 39 2C 36 33 2C 36 33 2C 31 32    159,159,63,63,12
01FF40:  37 2C 31 32 37 2C 32 32 39 2C 35 0D 0A 09 64 62    7,127,229,5...db
01FF50:  20 32 35 35 2C 31 38 31 2C 38 36 2C 32 33 35 2C     255,181,86,235,
01FF60:  38 35 2C 32 33 37 2C 31 38 36 2C 32 32 39 2C 34    85,237,186,229,4
01FF70:  2C 32 35 35 2C 32 32 39 2C 38 2C 30 2C 34 38 2C    ,255,229,8,0,48,
01FF80:  34 38 2C 32 34 30 2C 34 38 2C 34 38 2C 34 38 0D    48,240,48,48,48.
01FF90:  0A 09 64 62 20 32 34 30 2C 32 32 39 2C 33 38 2C    ..db 240,229,38,
01FFA0:  30 2C 31 35 35 2C 32 32 30 2C 32 31 36 2C 32 31    0,155,220,216,21
01FFB0:  36 2C 32 31 36 2C 32 32 39 2C 37 2C 30 2C 31 32    6,216,229,7,0,12
01FFC0:  30 2C 32 30 34 2C 32 30 34 2C 32 30 35 2C 31 32    0,204,204,205,12
01FFD0:  30 2C 32 32 39 0D 0A 09 64 62 20 34 36 2C 30 2C    0,229...db 46,0,
01FFE0:  32 34 31 2C 31 35 35 2C 32 34 39 2C 31 32 38 2C    241,155,249,128,
01FFF0:  32 34 33 2C 32 32 39 2C 31 37 2C 30 2C 32 35 35    243,229,17,0,255
020000:  32 35 35 2C 31 33 35 2C 34 2C 31 2C 32 32 39 2C    255,135,4,1,229,
020010:  31 31 2C 37 2C 33 2C 31 2C 34 2C 32 32 39 2C 37    11,7,3,1,4,229,7
020020:  2C 37 2C 31 2C 32 32 39 2C 34 2C 32 35 35 2C 32    ,7,1,229,4,255,2
020030:  32 39 2C 38 2C 30 0D 0A 09 64 62 20 34 38 2C 31    29,8,0...db 48,1
020040:  37 36 2C 36 32 2C 35 31 2C 35 31 2C 31 37 39 2C    76,62,51,51,179,
020050:  35 31 2C 32 32 39 2C 33 36 2C 30 2C 34 38 2C 34    51,229,36,0,48,4
020060:  38 2C 31 32 30 2C 34 38 2C 34 38 2C 34 38 2C 32    8,120,48,48,48,2
020070:  34 2C 32 32 39 2C 37 2C 30 2C 31 39 32 0D 0A 09    4,229,7,0,192...
020080:  64 62 20 32 32 34 2C 39 36 2C 31 30 32 2C 31 30    db 224,96,102,10
020090:  32 2C 31 32 2C 32 32 39 2C 34 35 2C 30 2C 31 35    2,12,229,45,0,15
0200A0:  32 2C 31 35 32 2C 31 35 32 2C 32 34 38 2C 32 34    2,152,152,248,24
0200B0:  2C 32 32 34 2C 32 32 39 2C 31 36 2C 30 2C 32 35    ,224,229,16,0,25
0200C0:  35 0D 0A 09 64 62 20 32 35 35 2C 32 32 39 2C 31    5...db 255,229,1
0200D0:  39 2C 30 2C 32 32 39 2C 31 32 2C 32 35 35 2C 31    9,0,229,12,255,1
0200E0:  33 31 2C 30 2C 31 39 32 2C 32 34 38 2C 32 35 34    31,0,192,248,254
0200F0:  2C 32 35 34 2C 32 32 39 2C 38 2C 32 35 35 2C 32    ,254,229,8,255,2
020100:  35 34 2C 32 35 34 0D 0A 09 64 62 20 31 32 30 2C    54,254...db 120,
020110:  31 2C 32 32 39 2C 31 31 2C 32 35 35 2C 32 32 39    1,229,11,255,229
020120:  2C 31 30 2C 30 2C 36 30 2C 31 30 32 2C 31 32 36    ,10,0,60,102,126
020130:  2C 39 36 2C 36 30 2C 32 32 39 2C 33 36 2C 30 2C    ,96,60,229,36,0,
020140:  31 2C 33 2C 32 32 39 2C 35 2C 31 0D 0A 09 64 62    1,3,229,5,1...db
020150:  20 32 32 39 2C 38 30 2C 30 2C 32 35 35 2C 32 35     229,80,0,255,25
020160:  35 2C 32 32 39 2C 31 39 2C 30 2C 32 32 39 2C 31    5,229,19,0,229,1
020170:  33 2C 32 35 35 2C 31 32 37 2C 36 33 2C 33 31 2C    3,255,127,63,31,
020180:  31 34 2C 31 34 2C 32 32 39 2C 36 2C 34 2C 31 32    14,14,229,6,4,12
020190:  0D 0A 09 64 62 20 31 34 2C 33 30 2C 36 33 2C 31    ...db 14,30,63,1
0201A0:  32 37 2C 32 32 39 2C 31 32 2C 32 35 35 2C 32 32    27,229,12,255,22
0201B0:  39 2C 38 2C 30 2C 31 2C 31 2C 31 32 31 2C 32 30    9,8,0,1,1,121,20
0201C0:  35 2C 31 39 33 2C 32 30 35 2C 31 32 31 2C 32 32    5,193,205,121,22
0201D0:  39 2C 33 36 0D 0A 09 64 62 20 30 2C 31 35 39 2C    9,36...db 0,159,
0201E0:  31 37 37 2C 31 37 37 2C 31 35 39 2C 31 32 39 2C    177,177,159,129,
0201F0:  31 33 31 2C 31 35 38 2C 32 32 39 2C 35 2C 30 2C    131,158,229,5,0,
020200:  54 72 61 63 6B 2D 49 6E 66 6F 0D 0A 00 00 00 00    Track-Info......
020210:  1B 00 01 00 02 09 4E E5 1B 00 C6 02 00 00 00 02    ......N.........
020220:  1B 00 C2 02 00 00 00 02 1B 00 C7 02 00 00 00 02    ................
020230:  1B 00 C3 02 00 00 00 02 1B 00 C8 02 00 00 00 02    ................
020240:  1B 00 C4 02 00 00 00 02 1B 00 C9 02 00 00 00 02    ................
020250:  1B 00 C5 02 00 00 00 02 1B 00 C1 02 00 00 00 02    ................
020260:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
020270:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
020280:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
020290:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
0202A0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
0202B0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
0202C0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
0202D0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
0202E0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
0202F0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
020300:  2C 38 30 2C 38 31 2C 36 35 2C 36 39 2C 35 2C 32    ,80,81,65,69,5,2
020310:  30 2C 30 2C 38 35 2C 36 34 0D 0A 09 64 62 20 30    0,0,85,64...db 0
020320:  2C 38 35 2C 36 35 2C 38 34 2C 35 2C 38 34 2C 32    ,85,65,84,5,84,2
020330:  31 2C 38 30 2C 30 2C 31 2C 38 35 2C 32 31 2C 38    1,80,0,1,85,21,8
020340:  30 2C 32 31 2C 36 35 2C 36 34 2C 30 2C 30 2C 38    0,21,65,64,0,0,8
020350:  35 2C 36 39 2C 35 2C 38 30 2C 35 2C 32 30 2C 32    5,69,5,80,5,20,2
020360:  31 2C 36 35 2C 36 35 2C 36 35 2C 38 35 2C 32 30    1,65,65,65,85,20
020370:  2C 30 2C 31 2C 36 34 0D 0A 09 64 62 20 30 2C 30    ,0,1,64...db 0,0
020380:  2C 30 2C 30 2C 30 2C 30 2C 30 2C 30 2C 30 2C 30    ,0,0,0,0,0,0,0,0
020390:  2C 30 2C 30 2C 30 2C 30 2C 30 2C 30 2C 30 2C 30    ,0,0,0,0,0,0,0,0
0203A0:  2C 30 2C 30 2C 30 2C 30 2C 30 2C 30 2C 30 2C 30    ,0,0,0,0,0,0,0,0
0203B0:  2C 30 2C 30 2C 30 2C 30 2C 30 2C 38 35 2C 30 0D    ,0,0,0,0,0,85,0.
0203C0:  0A 09 64 73 20 33 33 3A 20 64 73 20 33 33 3A 20    ..ds 33: ds 33: 
0203D0:  64 73 20 33 33 3A 20 64 73 20 33 33 3A 20 64 73    ds 33: ds 33: ds
0203E0:  20 33 33 3A 20 64 73 20 33 33 3A 20 64 73 20 33     33: ds 33: ds 3
0203F0:  33 3A 20 64 73 20 33 33 0D 0A 09 64 62 20 30 2C    3: ds 33...db 0,
020400:  38 35 2C 30 2C 30 2C 30 2C 30 2C 30 2C 30 2C 30    85,0,0,0,0,0,0,0
020410:  2C 30 2C 30 2C 30 2C 30 2C 30 2C 30 2C 30 2C 30    ,0,0,0,0,0,0,0,0
020420:  2C 30 2C 30 2C 38 31 2C 36 34 2C 30 2C 35 2C 35    ,0,0,81,64,0,5,5
020430:  2C 30 2C 30 2C 30 2C 30 2C 30 2C 30 2C 30 2C 30    ,0,0,0,0,0,0,0,0
020440:  2C 30 0D 0A 09 64 62 20 31 2C 36 35 2C 36 34 2C    ,0...db 1,65,64,
020450:  30 2C 30 2C 30 2C 30 2C 30 2C 30 2C 30 2C 30 2C    0,0,0,0,0,0,0,0,
020460:  30 2C 30 2C 30 2C 30 2C 30 2C 30 2C 30 2C 30 2C    0,0,0,0,0,0,0,0,
020470:  38 30 2C 30 2C 30 2C 35 2C 30 2C 30 2C 30 2C 30    80,0,0,5,0,0,0,0
020480:  2C 30 2C 30 2C 30 2C 30 2C 30 2C 30 0D 0A 09 64    ,0,0,0,0,0,0...d
020490:  62 20 30 2C 38 30 2C 31 2C 38 34 2C 32 30 2C 35    b 0,80,1,84,20,5
0204A0:  2C 35 2C 38 30 2C 30 2C 31 2C 36 35 2C 36 35 2C    ,5,80,0,1,65,65,
0204B0:  38 35 2C 35 2C 38 30 2C 38 31 2C 36 34 2C 30 2C    85,5,80,81,64,0,
0204C0:  32 31 2C 38 31 2C 36 35 2C 38 34 2C 32 31 2C 36    21,81,65,84,21,6
0204D0:  39 2C 35 2C 38 30 2C 38 35 2C 36 34 2C 38 35 2C    9,5,80,85,64,85,
0204E0:  35 2C 32 30 2C 38 30 2C 38 30 0D 0A 09 64 62 20    5,20,80,80...db 
0204F0:  30 2C 32 30 2C 30 2C 35 2C 32 30 2C 35 2C 32 30    0,20,0,5,20,5,20
020500:  35 2C 32 32 39 2C 31 39 38 2C 30 2C 32 35 35 0D    5,229,198,0,255.
020510:  0A 09 64 62 20 32 35 35 2C 32 32 39 2C 31 39 38    ..db 255,229,198
020520:  2C 30 2C 32 35 35 2C 32 35 35 2C 32 32 39 2C 31    ,0,255,255,229,1
020530:  39 38 2C 30 2C 32 35 35 2C 32 35 35 2C 32 32 39    98,0,255,255,229
020540:  2C 31 39 38 2C 30 2C 32 35 35 2C 32 35 35 2C 32    ,198,0,255,255,2
020550:  32 39 2C 31 39 38 0D 0A 09 64 62 20 33 2C 32 35    29,198...db 3,25
020560:  35 2C 32 32 39 2C 30 2C 30 2C 30 2C 30 2C 30 2C    5,229,0,0,0,0,0,
020570:  30 0D 0A 0D 0A 09 3B 2A 2A 2A 20 44 41 54 41 09    0.....;*** DATA.
020580:  4D 65 6E 75 20 73 70 72 69 74 65 0D 0A 0D 0A 2E    Menu sprite.....
020590:  6D 65 6E 75 73 70 09 64 62 20 30 2C 30 2C 30 2C    menusp.db 0,0,0,
0205A0:  30 2C 30 2C 38 35 2C 35 2C 30 2C 30 2C 30 2C 30    0,0,85,5,0,0,0,0
0205B0:  2C 31 2C 36 34 2C 30 2C 30 2C 30 2C 38 30 2C 30    ,1,64,0,0,0,80,0
0205C0:  2C 30 2C 30 2C 30 2C 30 2C 30 2C 30 2C 30 2C 30    ,0,0,0,0,0,0,0,0
0205D0:  2C 30 2C 31 2C 36 34 2C 30 2C 30 2C 30 2C 30 0D    ,0,1,64,0,0,0,0.
0205E0:  0A 09 64 62 20 30 2C 30 2C 30 2C 30 2C 31 2C 36    ..db 0,0,0,0,1,6
0205F0:  35 2C 36 39 2C 30 2C 30 2C 30 2C 30 2C 31 2C 36    5,69,0,0,0,0,1,6
020600:  34 2C 30 2C 30 2C 30 2C 38 30 2C 30 2C 30 2C 30    4,0,0,0,80,0,0,0
020610:  2C 30 2C 30 2C 30 2C 30 2C 30 2C 30 2C 30 2C 31    ,0,0,0,0,0,0,0,1
020620:  2C 36 34 2C 30 2C 30 2C 30 2C 30 0D 0A 09 64 62    ,64,0,0,0,0...db
020630:  20 30 2C 30 2C 30 2C 30 2C 31 2C 36 34 2C 35 2C     0,0,0,0,1,64,5,
020640:  38 34 2C 35 2C 38 30 2C 32 31 2C 36 35 2C 36 35    84,5,80,21,65,65
020650:  2C 36 34 2C 30 2C 32 31 2C 38 30 2C 38 35 2C 31    ,64,0,21,80,85,1
020660:  2C 38 34 2C 32 30 2C 32 30 2C 32 30 2C 38 30 2C    ,84,20,20,20,80,
020670:  32 31 2C 36 35 2C 38 35 2C 35 2C 38 30 2C 30 2C    21,65,85,5,80,0,
020680:  30 2C 30 2C 30 0D 0A 09 64 62 20 30 2C 30 2C 30    0,0,0...db 0,0,0
020690:  2C 30 2C 31 2C 36 34 2C 35 2C 35 2C 32 30 2C 32    ,0,1,64,5,5,20,2
0206A0:  30 2C 38 30 2C 38 31 2C 36 39 2C 30 2C 30 2C 38    0,80,81,69,0,0,8
0206B0:  30 2C 38 31 2C 36 35 2C 36 39 2C 35 2C 32 30 2C    0,81,65,69,5,20,
0206C0:  32 30 2C 38 35 2C 38 34 2C 38 30 2C 38 31 2C 36    20,85,84,80,81,6
0206D0:  35 2C 36 35 2C 36 34 2C 30 2C 30 2C 30 2C 30 0D    5,65,64,0,0,0,0.
0206E0:  0A 09 64 62 20 30 2C 30 2C 30 2C 30 2C 31 2C 36    ..db 0,0,0,0,1,6
0206F0:  34 2C 35 2C 35 2C 32 31 2C 38 34 2C 38 30 2C 31    4,5,5,21,84,80,1
020700:  2C 32 30 2C 30 2C 31 2C 36 35 2C 36 39 2C 30 2C    ,20,0,1,65,69,0,
020710:  32 30 2C 32 30 2C 38 34 2C 30 2C 30 2C 38 30 2C    20,20,84,0,0,80,
020720:  38 31 2C 36 39 2C 35 2C 35 2C 35 2C 32 30 2C 32    81,69,5,5,5,20,2
020730:  30 2C 38 30 2C 38 30 2C 31 2C 36 39 2C 36 34 2C    0,80,80,1,69,64,
020740:  38 30 2C 38 30 0D 0A 09 64 62 20 30 2C 35 2C 31    80,80...db 0,5,1
020750:  2C 38 35 2C 35 2C 32 30 2C 32 31 2C 38 34 2C 30    ,85,5,20,21,84,0
020760:  2C 31 2C 36 35 2C 36 35 2C 38 34 2C 32 31 2C 38    ,1,65,65,84,21,8
020770:  34 2C 38 30 2C 30 2C 30 2C 38 30 2C 38 31 2C 36    4,80,0,0,80,81,6
020780:  39 2C 30 2C 35 2C 35 2C 32 30 2C 32 30 2C 38 30    9,0,5,5,20,20,80
020790:  2C 38 30 2C 38 35 2C 36 39 2C 30 2C 38 30 2C 38    ,80,85,69,0,80,8
0207A0:  30 0D 0A 09 64 62 20 31 2C 36 35 2C 36 39 2C 35    0...db 1,65,69,5
0207B0:  2C 31 2C 38 30 2C 32 30 2C 30 2C 30 2C 31 2C 36    ,1,80,20,0,0,1,6
0207C0:  35 2C 36 34 2C 35 2C 32 30 2C 30 2C 38 30 2C 30    5,64,5,20,0,80,0
0207D0:  2C 30 2C 38 30 2C 38 31 2C 36 39 2C 35 2C 35 2C    ,0,80,81,69,5,5,
0207E0:  35 2C 32 30 2C 32 30 2C 38 30 2C 38 31 2C 36 35    5,20,20,80,81,65
0207F0:  2C 36 39 2C 30 2C 32 31 2C 38 30 0D 0A 09 64 62    ,69,0,21,80...db
020800:  20 30 2C 38 35 2C 31 2C 38 35 2C 30 2C 36 34 2C     0,85,1,85,0,64,
020810:  35 2C 38 30 2C 30 2C 30 2C 38 35 2C 36 39 2C 38    5,80,0,0,85,69,8
020820:  34 2C 35 2C 38 30 2C 38 30 2C 30 2C 30 2C 32 31    4,5,80,80,0,0,21
020830:  2C 38 31 2C 36 35 2C 38 34 2C 31 2C 36 39 2C 35    ,81,65,84,1,69,5
020840:  2C 38 30 2C 38 30 2C 38 30 2C 38 35 2C 36 39 2C    ,80,80,80,85,69,
020850:  30 2C 30 2C 38 30 0D 0A 09 64 62 20 30 2C 30 2C    0,0,80...db 0,0,
020860:  30 2C 30 2C 30 2C 30 2C 30 2C 30 2C 30 2C 30 2C    0,0,0,0,0,0,0,0,
020870:  30 2C 30 2C 30 2C 30 2C 30 2C 30 2C 30 2C 30 2C    0,0,0,0,0,0,0,0,
020880:  30 2C 30 2C 30 2C 30 2C 30 2C 30 2C 30 2C 30 2C    0,0,0,0,0,0,0,0,
020890:  30 2C 30 2C 30 2C 30 2C 30 2C 32 31 2C 36 34 0D    0,0,0,0,0,21,64.
0208A0:  0A 09 64 73 20 33 33 3A 20 64 73 20 33 33 3A 20    ..ds 33: ds 33: 
0208B0:  64 73 20 33 33 3A 20 64 73 20 33 33 3A 20 64 73    ds 33: ds 33: ds
0208C0:  20 33 33 3A 20 64 73 20 33 33 3A 20 64 73 20 33     33: ds 33: ds 3
0208D0:  33 3A 20 64 73 20 33 33 0D 0A 09 64 62 20 30 2C    3: ds 33...db 0,
0208E0:  30 2C 30 2C 30 2C 30 2C 30 2C 30 2C 31 2C 38 34    0,0,0,0,0,0,1,84
0208F0:  2C 30 2C 30 2C 30 2C 31 2C 36 34 2C 30 2C 30 2C    ,0,0,0,1,64,0,0,
020900:  2C 38 34 2C 30 2C 30 2C 38 30 2C 38 31 2C 36 35    ,84,0,0,80,81,65
020910:  2C 36 39 2C 30 2C 32 30 2C 32 30 2C 38 31 2C 32    ,69,0,20,20,81,2
020920:  30 2C 38 35 2C 38 31 2C 36 35 2C 36 35 2C 36 34    0,85,81,65,65,64
020930:  2C 30 2C 30 2C 30 2C 30 0D 0A 09 64 62 20 30 2C    ,0,0,0,0...db 0,
020940:  30 2C 30 2C 30 2C 31 2C 36 35 2C 36 39 2C 35 2C    0,0,0,1,65,69,5,
020950:  32 30 2C 30 2C 38 30 2C 38 31 2C 36 39 2C 30 2C    20,0,80,81,69,0,
020960:  30 2C 38 30 2C 38 31 2C 36 35 2C 36 39 2C 35 2C    0,80,81,65,69,5,
020970:  32 30 2C 32 30 2C 38 30 2C 32 30 2C 38 30 2C 31    20,20,80,20,80,1
020980:  2C 36 35 2C 36 35 2C 36 34 2C 30 2C 30 2C 30 2C    ,65,65,64,0,0,0,
020990:  30 0D 0A 09 64 62 20 30 2C 30 2C 30 2C 30 2C 30    0...db 0,0,0,0,0
0209A0:  2C 38 35 2C 35 2C 35 2C 35 2C 38 30 2C 32 31 2C    ,85,5,5,5,80,21,
0209B0:  36 35 2C 36 35 2C 36 34 2C 30 2C 32 31 2C 38 30    65,65,64,0,21,80
0209C0:  2C 38 35 2C 31 2C 38 34 2C 35 2C 38 34 2C 38 30    ,85,1,84,5,84,80
0209D0:  2C 32 30 2C 32 31 2C 36 35 2C 36 35 2C 36 34 2C    ,20,21,65,65,64,
0209E0:  38 30 2C 30 2C 30 2C 30 2C 30 0D 0A 09 64 73 20    80,0,0,0,0...ds 
0209F0:  33 33 3A 20 64 73 20 33 33 3A 20 64 73 20 33 33    33: ds 33: ds 33
020A00:  3A 20 64 73 20 33 33 3A 20 64 73 20 33 33 3A 20    : ds 33: ds 33: 
020A10:  64 73 20 33 33 3A 20 64 73 20 33 33 3A 20 64 73    ds 33: ds 33: ds
020A20:  20 33 33 3A 20 64 73 20 33 33 0D 0A 09 64 62 20     33: ds 33...db 
020A30:  30 2C 31 2C 38 35 2C 30 2C 32 30 2C 38 30 2C 38    0,1,85,0,20,80,8
020A40:  30 2C 30 2C 30 2C 30 2C 30 2C 30 2C 30 2C 30 2C    0,0,0,0,0,0,0,0,
020A50:  30 2C 30 2C 30 2C 30 2C 38 31 2C 36 34 2C 30 2C    0,0,0,0,81,64,0,
020A60:  35 2C 35 2C 30 2C 30 2C 30 2C 30 2C 30 2C 30 2C    5,5,0,0,0,0,0,0,
020A70:  30 2C 30 2C 30 2C 30 0D 0A 09 64 62 20 30 2C 31    0,0,0,0...db 0,1
020A80:  2C 36 34 2C 30 2C 32 30 2C 30 2C 38 30 2C 30 2C    ,64,0,20,0,80,0,
020A90:  30 2C 30 2C 30 2C 30 2C 30 2C 30 2C 30 2C 30 2C    0,0,0,0,0,0,0,0,
020AA0:  30 2C 30 2C 38 30 2C 30 2C 30 2C 35 2C 30 2C 30    0,0,80,0,0,5,0,0
020AB0:  2C 30 2C 30 2C 30 2C 30 2C 30 2C 30 2C 30 2C 30    ,0,0,0,0,0,0,0,0
020AC0:  2C 30 0D 0A 09 64 62 20 30 2C 31 2C 36 34 2C 35    ,0...db 0,1,64,5
020AD0:  2C 38 34 2C 38 31 2C 38 34 2C 30 2C 31 2C 36 35    ,84,81,84,0,1,65
020AE0:  2C 36 35 2C 38 35 2C 35 2C 38 30 2C 38 31 2C 36    ,65,85,5,80,81,6
020AF0:  34 2C 30 2C 32 31 2C 38 31 2C 36 35 2C 38 34 2C    4,0,21,81,65,84,
020B00:  30 2C 30 2C 30 2C 38 30 2C 38 30 2C 30 2C 30 2C    0,0,0,80,80,0,0,
020B10:  30 2C 30 2C 30 2C 30 2C 30 2C 30 2C 30 2C 30 2C    0,0,0,0,0,0,0,0,
020B20:  30 2C 30 0D 0A 09 64 62 20 30 2C 30 2C 30 2C 30    0,0...db 0,0,0,0
020B30:  2C 30 2C 30 2C 30 2C 30 2C 38 30 2C 30 2C 30 2C    ,0,0,0,0,80,0,0,
020B40:  30 2C 31 2C 36 34 2C 30 2C 30 2C 30 2C 30 2C 30    0,1,64,0,0,0,0,0
020B50:  2C 38 30 2C 30 2C 30 2C 30 2C 30 2C 30 2C 30 2C    ,80,0,0,0,0,0,0,
020B60:  30 2C 30 2C 30 2C 30 2C 30 2C 30 2C 30 0D 0A 09    0,0,0,0,0,0,0...
020B70:  64 62 20 30 2C 30 2C 30 2C 30 2C 30 2C 30 2C 30    db 0,0,0,0,0,0,0
020B80:  2C 30 2C 38 30 2C 38 35 2C 36 34 2C 38 35 2C 36    ,0,80,85,64,85,6
020B90:  39 2C 38 31 2C 36 39 2C 32 30 2C 32 30 2C 32 31    9,81,69,20,20,21
020BA0:  2C 36 35 2C 38 34 2C 38 30 2C 38 35 2C 35 2C 38    ,65,84,80,85,5,8
020BB0:  34 2C 35 2C 38 34 2C 30 2C 30 2C 30 2C 30 2C 30    4,5,84,0,0,0,0,0
020BC0:  2C 30 2C 30 0D 0A 09 64 62 20 30 2C 30 2C 30 2C    ,0,0...db 0,0,0,
020BD0:  30 2C 30 2C 30 2C 30 2C 30 2C 38 30 2C 38 30 2C    0,0,0,0,0,80,80,
020BE0:  38 31 2C 36 34 2C 31 2C 36 35 2C 38 30 2C 32 30    81,64,1,65,80,20
020BF0:  2C 32 30 2C 38 30 2C 38 30 2C 38 30 2C 38 31 2C    ,20,80,80,80,81,
020C00:  36 35 2C 36 39 2C 35 2C 32 30 2C 30 2C 30 2C 30    65,69,5,20,0,0,0
020C10:  2C 30 2C 30 2C 30 2C 30 2C 30 0D 0A 09 64 62 20    ,0,0,0,0,0...db 
020C20:  30 2C 30 2C 30 2C 30 2C 30 2C 30 2C 30 2C 30 2C    0,0,0,0,0,0,0,0,
020C30:  38 30 2C 38 30 2C 38 30 2C 38 35 2C 31 2C 36 35    80,80,80,85,1,65
020C40:  2C 36 34 2C 32 30 2C 32 30 2C 38 30 2C 30 2C 38    ,64,20,20,80,0,8
020C50:  30 2C 38 31 2C 36 35 2C 36 39 2C 35 2C 35 2C 38    0,81,65,69,5,5,8
020C60:  30 2C 30 2C 30 2C 30 2C 30 2C 30 2C 30 2C 30 0D    0,0,0,0,0,0,0,0.
020C70:  0A 09 64 62 20 30 2C 30 2C 30 2C 30 2C 30 2C 30    ..db 0,0,0,0,0,0
020C80:  2C 30 2C 30 2C 38 30 2C 38 30 2C 38 30 2C 31 2C    ,0,0,80,80,80,1,
020C90:  36 35 2C 36 35 2C 36 34 2C 32 30 2C 32 30 2C 38    65,65,64,20,20,8
020CA0:  30 2C 38 30 2C 38 30 2C 38 31 2C 36 35 2C 36 39    0,80,80,81,65,69
020CB0:  2C 35 2C 30 2C 32 30 2C 30 2C 30 2C 30 2C 30 2C    ,5,0,20,0,0,0,0,
020CC0:  30 2C 30 2C 30 0D 0A 09 64 62 20 30 2C 30 2C 30    0,0,0...db 0,0,0
020CD0:  2C 30 2C 30 2C 30 2C 30 2C 31 2C 38 34 2C 38 30    ,0,0,0,0,1,84,80
020CE0:  2C 38 31 2C 38 35 2C 30 2C 38 31 2C 36 34 2C 35    ,81,85,0,81,64,5
020CF0:  2C 38 34 2C 32 31 2C 36 34 2C 32 30 2C 38 30 2C    ,84,21,64,20,80,
020D00:  32 31 2C 36 39 2C 35 2C 38 30 2C 38 35 2C 36 34    21,69,5,80,85,64
020D10:  2C 38 35 2C 35 2C 32 30 2C 38 30 2C 38 30 2C 30    ,85,5,20,80,80,0
020D20:  0D 0A 09 64 62 20 30 2C 31 2C 38 34 2C 32 30 2C    ...db 0,1,84,20,
020D30:  32 30 2C 38 30 2C 38 30 2C 30 2C 31 2C 36 35 2C    20,80,80,0,1,65,
020D40:  36 39 2C 30 2C 32 30 2C 32 30 2C 38 34 2C 30 2C    69,0,20,20,84,0,
020D50:  30 2C 38 30 2C 38 31 2C 36 39 2C 35 2C 35 2C 35    0,80,81,69,5,5,5
020D60:  2C 32 30 2C 32 30 2C 38 30 2C 38 30 2C 31 2C 36    ,20,20,80,80,1,6
020D70:  39 2C 36 34 2C 38 30 2C 38 30 2C 30 0D 0A 09 64    9,64,80,80,0...d
020D80:  62 20 30 2C 31 2C 36 34 2C 32 30 2C 32 30 2C 38    b 0,1,64,20,20,8
020D90:  30 2C 38 30 2C 30 2C 31 2C 36 35 2C 36 35 2C 38    0,80,0,1,65,65,8
020DA0:  34 2C 32 31 2C 38 34 2C 38 30 2C 30 2C 30 2C 38    4,21,84,80,0,0,8
020DB0:  30 2C 38 31 2C 36 39 2C 30 2C 35 2C 35 2C 32 30    0,81,69,0,5,5,20
020DC0:  2C 32 30 2C 38 30 2C 38 30 2C 38 35 2C 36 39 2C    ,20,80,80,85,69,
020DD0:  30 2C 38 30 2C 38 30 2C 30 0D 0A 09 64 62 20 30    0,80,80,0...db 0
020DE0:  2C 31 2C 36 34 2C 32 30 2C 32 30 2C 38 30 2C 38    ,1,64,20,20,80,8
020DF0:  30 2C 30 2C 31 2C 36 35 2C 36 34 2C 35 2C 32 30    0,0,1,65,64,5,20
020E00:  2C 30 2C 38 30 2C 30 2C 30 2C 38 30 2C 38 31 2C    ,0,80,0,0,80,81,
020E10:  36 39 2C 35 2C 35 2C 35 2C 32 30 2C 32 30 2C 38    69,5,5,5,20,20,8
020E20:  30 2C 38 31 2C 36 35 2C 36 39 2C 30 2C 32 31 2C    0,81,65,69,0,21,
020E30:  38 30 2C 30 0D 0A 09 64 62 20 30 2C 31 2C 38 35    80,0...db 0,1,85
020E40:  2C 35 2C 38 34 2C 38 30 2C 32 30 2C 30 2C 30 2C    ,5,84,80,20,0,0,
020E50:  38 35 2C 36 39 2C 38 34 2C 35 2C 38 30 2C 38 30    85,69,84,5,80,80
020E60:  2C 30 2C 30 2C 32 31 2C 38 31 2C 36 35 2C 38 34    ,0,0,21,81,65,84
020E70:  2C 31 2C 36 39 2C 35 2C 38 30 2C 38 30 2C 38 30    ,1,69,5,80,80,80
020E80:  2C 38 35 2C 36 39 2C 30 2C 30 2C 38 30 2C 30 0D    ,85,69,0,0,80,0.
020E90:  0A 09 64 62 20 30 2C 30 2C 30 2C 30 2C 30 2C 30    ..db 0,0,0,0,0,0
020EA0:  2C 30 2C 30 2C 30 2C 30 2C 30 2C 30 2C 30 2C 30    ,0,0,0,0,0,0,0,0
020EB0:  2C 30 2C 30 2C 30 2C 30 2C 30 2C 30 2C 30 2C 30    ,0,0,0,0,0,0,0,0
020EC0:  2C 30 2C 30 2C 30 2C 30 2C 30 2C 30 2C 30 2C 30    ,0,0,0,0,0,0,0,0
020ED0:  2C 32 31 2C 36 34 2C 30 0D 0A 09 64 73 20 33 33    ,21,64,0...ds 33
020EE0:  3A 20 64 73 20 33 33 3A 20 64 73 20 33 33 3A 20    : ds 33: ds 33: 
020EF0:  64 73 20 33 33 3A 20 64 73 20 33 33 3A 20 64 73    ds 33: ds 33: ds
020F00:  38 35 2C 35 2C 35 2C 32 31 2C 38 30 2C 30 2C 30    85,5,5,21,80,0,0
020F10:  2C 30 2C 30 2C 30 2C 30 2C 30 0D 0A 0D 0A 0D 0A    ,0,0,0,0,0......
020F20:  09 3B 2A 2A 2A 20 52 4F 55 54 09 43 68 65 63 6B    .;*** ROUT.Check
020F30:  20 64 6F 63 75 6D 65 6E 74 0D 0A 0D 0A 2E 73 70     document.....sp
020F40:  65 6C 6C 09 63 61 6C 6C 20 63 6C 65 61 72 3A 20    ell.call clear: 
020F50:  63 61 6C 6C 20 63 6C 73 32 0D 0A 09 6C 64 20 68    call cls2...ld h
020F60:  6C 2C 73 66 6E 5F 74 78 3A 20 63 61 6C 6C 20 73    l,sfn_tx: call s
020F70:  74 72 69 6E 67 3A 20 6C 64 20 69 78 2C 73 66 6E    tring: ld ix,sfn
020F80:  20 20 20 3A 20 63 61 6C 6C 20 69 6E 70 75 74 3A       : call input:
020F90:  20 6A 70 20 63 20 2C 6D 61 69 6E 0D 0A 09 09 09     jp c ,main.....
020FA0:  09 20 20 20 6C 64 20 64 65 2C 69 6E 62 75 66 66    .   ld de,inbuff
020FB0:  3A 20 63 61 6C 6C 20 26 42 43 37 37 3A 20 6A 70    : call &BC77: jp
020FC0:  20 6E 63 2C 70 61 75 73 65 0D 0A 09 09 09 09 20     nc,pause...... 
020FD0:  20 20 6C 64 20 28 66 74 79 70 65 29 2C 61 3A 20      ld (ftype),a: 
020FE0:  6C 64 20 28 68 65 61 64 65 72 29 2C 68 6C 0D 0A    ld (header),hl..
020FF0:  09 6C 64 20 68 6C 2C 64 66 6E 5F 74 78 3A 20 63    .ld hl,dfn_tx: c
021000:  61 6C 6C 20 73 74 72 69 6E 67 3A 20 6C 64 20 69    all string: ld i
021010:  78 2C 64 66 6E 20 20 20 3A 20 63 61 6C 6C 20 69    x,dfn   : call i
021020:  6E 70 75 74 3A 20 6A 70 20 63 20 2C 6D 61 69 6E    nput: jp c ,main
021030:  0D 0A 09 09 09 09 20 20 20 6C 64 20 64 65 2C 6F    ......   ld de,o
021040:  74 62 75 66 66 3A 20 63 61 6C 6C 20 26 42 43 38    tbuff: call &BC8
021050:  43 3A 20 6A 70 20 6E 63 2C 70 61 75 73 65 0D 0A    C: jp nc,pause..
021060:  09 6C 64 20 61 2C 28 66 74 79 70 65 29 3A 20 63    .ld a,(ftype): c
021070:  70 20 26 32 32 3A 20 63 61 6C 6C 20 6E 7A 2C 72    p &22: call nz,r
021080:  65 74 79 70 65 0D 0A 0D 0A 09 6C 64 20 68 6C 2C    etype.....ld hl,
021090:  30 20 20 20 20 3A 20 6C 64 20 28 77 6F 72 64 73    0    : ld (words
0210A0:  20 29 2C 68 6C 09 09 3B 5A 65 72 6F 20 77 6F 72     ),hl..;Zero wor
0210B0:  64 20 63 6F 75 6E 74 0D 0A 09 6C 64 20 68 6C 2C    d count...ld hl,
0210C0:  26 34 30 30 30 3A 20 6C 64 20 28 69 67 5F 74 6F    &4000: ld (ig_to
0210D0:  70 29 2C 68 6C 09 09 3B 5A 65 72 6F 20 22 69 67    p),hl..;Zero "ig
0210E0:  6E 6F 72 65 22 20 64 69 63 74 69 6F 6E 61 72 79    nore" dictionary
0210F0:  0D 0A 09 63 61 6C 6C 20 63 6C 73 31 09 09 09 09    ...call cls1....
021100:  20 33 33 3A 20 64 73 20 33 33 3A 20 64 73 20 33     33: ds 33: ds 3
021110:  33 0D 0A 09 64 62 20 30 2C 38 30 2C 30 2C 30 2C    3...db 0,80,0,0,
021120:  30 2C 30 2C 30 2C 38 30 2C 30 2C 30 2C 30 2C 30    0,0,0,80,0,0,0,0
021130:  2C 30 2C 30 2C 30 2C 30 2C 30 2C 30 2C 31 2C 36    ,0,0,0,0,0,0,1,6
021140:  39 2C 30 2C 30 2C 32 30 2C 32 30 2C 30 2C 30 2C    9,0,0,20,20,0,0,
021150:  30 2C 30 2C 30 2C 30 2C 30 2C 30 2C 30 0D 0A 09    0,0,0,0,0,0,0...
021160:  64 62 20 30 2C 38 30 2C 30 2C 30 2C 30 2C 30 2C    db 0,80,0,0,0,0,
021170:  30 2C 38 30 2C 30 2C 30 2C 30 2C 30 2C 30 2C 30    0,80,0,0,0,0,0,0
021180:  2C 30 2C 30 2C 30 2C 30 2C 31 2C 36 34 2C 30 2C    ,0,0,0,0,1,64,0,
021190:  30 2C 32 30 2C 30 2C 30 2C 30 2C 30 2C 30 2C 30    0,20,0,0,0,0,0,0
0211A0:  2C 30 2C 30 2C 30 2C 30 0D 0A 09 64 62 20 30 2C    ,0,0,0,0...db 0,
0211B0:  38 30 2C 31 2C 38 34 2C 35 2C 38 30 2C 32 31 2C    80,1,84,5,80,21,
0211C0:  38 30 2C 30 2C 35 2C 35 2C 35 2C 38 34 2C 32 31    80,0,5,5,5,84,21
0211D0:  2C 36 35 2C 36 39 2C 30 2C 30 2C 38 35 2C 36 39    ,65,69,0,0,85,69
0211E0:  2C 35 2C 38 30 2C 38 35 2C 32 30 2C 32 31 2C 36    ,5,80,85,20,21,6
0211F0:  35 2C 38 35 2C 31 2C 38 34 2C 32 30 2C 38 31 2C    5,85,1,84,20,81,
021200:  36 35 2C 36 34 0D 0A 09 64 62 20 30 2C 38 30 2C    65,64...db 0,80,
021210:  35 2C 35 2C 30 2C 32 30 2C 38 30 2C 38 30 2C 30    5,5,0,20,80,80,0
021220:  2C 35 2C 35 2C 32 30 2C 30 2C 38 30 2C 38 31 2C    ,5,5,20,0,80,81,
021230:  38 30 2C 30 2C 31 2C 36 35 2C 36 39 2C 32 30 2C    80,0,1,65,69,20,
021240:  32 30 2C 32 30 2C 32 30 2C 38 30 2C 38 31 2C 36    20,20,20,80,81,6
021250:  35 2C 36 34 2C 35 2C 32 31 2C 31 2C 36 35 2C 36    5,64,5,21,1,65,6
021260:  34 0D 0A 09 64 62 20 30 2C 38 30 2C 35 2C 35 2C    4...db 0,80,5,5,
021270:  35 2C 38 34 2C 38 30 2C 38 30 2C 30 2C 35 2C 35    5,84,80,80,0,5,5
021280:  2C 35 2C 38 30 2C 38 35 2C 38 31 2C 36 34 2C 30    ,5,80,85,81,64,0
021290:  2C 31 2C 36 35 2C 36 39 2C 32 30 2C 30 2C 32 30    ,1,65,69,20,0,20
0212A0:  2C 32 30 2C 38 30 2C 38 31 2C 36 35 2C 36 35 2C    ,20,80,81,65,65,
0212B0:  38 35 2C 32 30 2C 31 2C 36 35 2C 36 34 0D 0A 09    85,20,1,65,64...
0212C0:  64 62 20 30 2C 38 30 2C 35 2C 35 2C 32 30 2C 32    db 0,80,5,5,20,2
0212D0:  30 2C 38 30 2C 38 30 2C 30 2C 35 2C 35 2C 30 2C    0,80,80,0,5,5,0,
0212E0:  32 30 2C 38 30 2C 31 2C 36 34 2C 30 2C 31 2C 36    20,80,1,64,0,1,6
0212F0:  35 2C 36 39 2C 32 30 2C 32 30 2C 32 30 2C 32 30    5,69,20,20,20,20
021300:  35 2C 32 35 35 2C 32 32 39 2C 31 32 33 2C 30 2C    5,255,229,123,0,
021310:  32 32 34 2C 30 2C 31 39 32 2C 39 36 2C 39 36 2C    224,0,192,96,96,
021320:  39 36 2C 31 39 32 2C 32 32 39 0D 0A 09 64 62 20    96,192,229...db 
021330:  36 38 2C 30 2C 32 35 35 2C 32 35 35 2C 32 32 39    68,0,255,255,229
021340:  2C 31 32 33 2C 30 2C 33 2C 36 2C 31 32 2C 31 35    ,123,0,3,6,12,15
021350:  2C 31 32 2C 31 32 2C 37 2C 32 32 39 2C 36 38 2C    ,12,12,7,229,68,
021360:  30 2C 32 35 35 2C 32 35 35 2C 32 32 39 2C 31 32    0,255,255,229,12
021370:  33 0D 0A 09 64 62 20 30 2C 32 30 34 2C 31 32 2C    3...db 0,204,12,
021380:  31 32 2C 32 30 37 2C 31 30 38 2C 31 30 38 2C 32    12,207,108,108,2
021390:  30 34 2C 32 32 39 2C 36 38 2C 30 2C 32 35 35 2C    04,229,68,0,255,
0213A0:  32 35 35 2C 32 32 39 2C 31 32 33 2C 30 2C 32 32    255,229,123,0,22
0213B0:  33 2C 32 31 36 0D 0A 09 64 62 20 32 31 36 2C 32    3,216...db 216,2
0213C0:  32 32 2C 32 31 36 2C 32 31 36 2C 32 31 36 2C 32    22,216,216,216,2
0213D0:  32 39 2C 36 38 2C 30 2C 32 35 35 2C 32 35 35 2C    29,68,0,255,255,
0213E0:  32 32 39 2C 31 39 38 2C 30 2C 32 35 35 2C 32 35    229,198,0,255,25
0213F0:  35 2C 32 32 39 2C 31 39 38 0D 0A 09 64 62 20 30    5,229,198...db 0
021400:  2C 32 35 35 2C 32 35 35 2C 32 32 39 2C 31 39 38    ,255,255,229,198
021410:  2C 30 2C 32 35 35 2C 32 35 35 2C 32 32 39 2C 31    ,0,255,255,229,1
021420:  39 38 2C 30 2C 32 35 35 2C 32 35 35 2C 32 32 39    98,0,255,255,229
021430:  2C 31 39 38 2C 30 2C 32 35 35 2C 32 35 35 0D 0A    ,198,0,255,255..
021440:  09 64 62 20 32 32 39 2C 31 39 38 2C 30 2C 32 35    .db 229,198,0,25
021450:  35 2C 32 35 35 2C 32 32 39 2C 31 39 38 2C 30 2C    5,255,229,198,0,
021460:  32 35 35 2C 32 35 35 2C 32 32 39 2C 31 39 38 2C    255,255,229,198,
021470:  30 2C 32 35 35 2C 32 35 35 2C 32 32 39 2C 31 39    0,255,255,229,19
021480:  38 2C 30 0D 0A 09 64 62 20 32 35 35 2C 32 35 35    8,0...db 255,255
021490:  2C 32 32 39 2C 31 39 38 2C 30 2C 32 35 35 2C 32    ,229,198,0,255,2
0214A0:  35 35 2C 32 32 39 2C 31 39 38 2C 30 2C 32 35 35    55,229,198,0,255
0214B0:  2C 32 35 35 2C 32 32 39 2C 31 39 38 2C 30 2C 32    ,255,229,198,0,2
0214C0:  35 35 2C 32 35 35 2C 32 32 39 0D 0A 09 64 62 20    55,255,229...db 
0214D0:  31 39 38 2C 30 2C 32 35 35 2C 32 35 35 2C 32 32    198,0,255,255,22
0214E0:  39 2C 31 39 38 2C 30 2C 32 35 35 2C 32 35 35 2C    9,198,0,255,255,
0214F0:  32 32 39 2C 31 39 38 2C 30 2C 32 35 35 2C 32 35    229,198,0,255,25
021500:  54 72 61 63 6B 2D 49 6E 66 6F 0D 0A 00 00 00 00    Track-Info......
021510:  1C 00 01 00 02 09 4E E5 1C 00 C9 02 00 00 00 02    ......N.........
021520:  1C 00 C5 02 00 00 00 02 1C 00 C1 02 00 00 00 02    ................
021530:  1C 00 C6 02 00 00 00 02 1C 00 C2 02 00 00 00 02    ................
021540:  1C 00 C7 02 00 00 00 02 1C 00 C3 02 00 00 00 02    ................
021550:  1C 00 C8 02 00 00 00 02 1C 00 C4 02 00 00 00 02    ................
021560:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
021570:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
021580:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
021590:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
0215A0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
0215B0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
0215C0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
0215D0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
0215E0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
0215F0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
021600:  65 61 64 79 20 61 74 20 30 3F 0D 0A 2E 63 6F 6E    eady at 0?...con
021610:  70 6C 09 64 65 63 20 68 6C 3A 20 63 61 6C 6C 20    pl.dec hl: call 
021620:  6C 64 61 68 6C 3A 20 61 6E 64 20 31 32 38 3A 20    ldahl: and 128: 
021630:  6A 72 20 7A 2C 63 6F 6E 70 6C 09 3B 4C 61 73 74    jr z,conpl.;Last
021640:  20 63 68 61 72 61 63 74 65 72 20 30 3F 0D 0A 2E     character 0?...
021650:  63 6F 6E 70 32 09 64 65 63 20 68 6C 3A 20 63 61    conp2.dec hl: ca
021660:  6C 6C 20 6C 64 61 68 6C 3A 20 61 6E 64 20 31 32    ll ldahl: and 12
021670:  38 3A 20 6A 72 20 7A 2C 63 6F 6E 70 32 09 3B 52    8: jr z,conp2.;R
021680:  65 77 69 6E 64 20 75 6E 74 69 6C 20 22 65 6E 64    ewind until "end
021690:  20 6F 66 20 77 6F 72 64 22 0D 0A 2E 63 6F 6E 70     of word"...conp
0216A0:  33 09 69 6E 63 20 68 6C 3A 20 63 61 6C 6C 20 6C    3.inc hl: call l
0216B0:  64 61 68 6C 3A 20 6F 72 20 61 20 20 20 3A 20 6A    dahl: or a   : j
0216C0:  72 20 7A 2C 63 6F 6E 70 33 09 3B 2E 2E 2E 6A 75    r z,conp3.;...ju
0216D0:  73 74 20 69 6E 20 63 61 73 65 20 69 74 27 73 20    st in case it's 
0216E0:  30 2E 2E 2E 0D 0A 09 6A 70 20 63 6F 6E 70 72 74    0......jp conprt
0216F0:  0D 0A 0D 0A 2E 63 6F 6E 71 74 09 63 61 6C 6C 20    .....conqt.call 
021700:  26 42 42 36 43 3A 20 6A 70 20 6F 70 74 69 6F 6E    &BB6C: jp option
021710:  0D 0A 0D 0A 0D 0A 09 3B 2D 2D 2D 20 73 75 62 72    .......;--- subr
021720:  09 46 69 6E 64 20 61 64 64 72 65 73 73 20 6F 66    .Find address of
021730:  20 63 6C 6F 73 65 73 74 20 77 6F 72 64 20 69 6E     closest word in
021740:  20 64 69 63 74 69 6F 6E 61 72 79 0D 0A 0D 0A 2E     dictionary.....
021750:  63 6F 6E 5F 66 64 09 6C 64 20 61 2C 28 77 6F 72    con_fd.ld a,(wor
021760:  64 29 3A 20 63 61 6C 6C 20 73 74 61 72 74 09 09    d): call start..
021770:  09 3B 47 65 74 20 73 74 61 72 74 20 61 64 64 72    .;Get start addr
021780:  65 73 73 20 6F 66 20 6C 65 74 74 65 72 0D 0A 09    ess of letter...
021790:  78 6F 72 20 61 3A 20 6C 64 20 28 62 65 73 74 29    xor a: ld (best)
0217A0:  2C 61 09 09 09 3B 42 65 73 74 20 6E 75 6D 62 65    ,a...;Best numbe
0217B0:  72 20 6F 66 20 6C 65 74 74 65 72 73 20 73 6F 20    r of letters so 
0217C0:  66 61 72 0D 0A 0D 0A 2E 63 6F 6E 5F 6F 6C 09 6C    far.....con_ol.l
0217D0:  64 20 64 65 2C 77 6F 72 64 2B 31 3A 20 6C 64 20    d de,word+1: ld 
0217E0:  62 2C 31 09 09 09 3B 53 74 61 72 74 20 66 72 6F    b,1...;Start fro
0217F0:  6D 20 73 65 63 6F 6E 64 20 6C 65 74 74 65 72 0D    m second letter.
021800:  34 3A 20 6A 72 20 7A 2C 70 75 74 77 73 6B 09 3B    4: jr z,putwsk.;
021810:  43 6F 6E 74 69 6E 75 65 20 77 69 74 68 20 6E 6F    Continue with no
021820:  6E 2D 41 53 43 49 49 20 63 68 61 72 0D 0A 09 3A    n-ASCII char...:
021830:  20 6C 64 20 63 2C 61 3A 20 63 61 6C 6C 20 70 75     ld c,a: call pu
021840:  74 63 68 72 3A 20 6A 70 20 6E 63 2C 70 61 75 73    tchr: jp nc,paus
021850:  65 09 3B 20 7C 20 77 72 69 74 65 20 63 68 61 72    e.; | write char
021860:  61 63 74 65 72 0D 0A 09 3A 20 6C 64 20 61 2C 63    acter...: ld a,c
021870:  3A 20 63 61 6C 6C 20 64 69 73 70 09 09 09 3B 20    : call disp...; 
021880:  7C 0D 0A 2E 70 75 74 77 73 6B 09 6A 70 20 73 70    |...putwsk.jp sp
021890:  6C 5F 6C 70 0D 0A 0D 0A 09 3B 2D 2D 2D 20 73 75    l_lp.....;--- su
0218A0:  62 72 09 50 61 74 63 68 20 69 66 20 77 6F 72 64    br.Patch if word
0218B0:  20 65 6E 64 73 20 69 6E 20 61 70 6F 73 74 72 6F     ends in apostro
0218C0:  70 68 65 0D 0A 0D 0A 2E 61 70 6F 61 64 6A 09 6C    phe.....apoadj.l
0218D0:  64 20 61 2C 28 69 79 2D 31 29 3A 20 63 70 20 22    d a,(iy-1): cp "
0218E0:  27 22 3A 20 6A 72 20 20 20 6E 7A 2C 61 70 6F 61    '": jr   nz,apoa
0218F0:  64 73 0D 0A 09 6C 64 20 61 2C 28 63 68 61 72 29    ds...ld a,(char)
021900:  3A 20 63 70 20 32 35 34 3A 20 63 61 6C 6C 20 6E    : cp 254: call n
021910:  7A 2C 26 42 43 38 36 09 3B 52 65 74 75 72 6E 20    z,&BC86.;Return 
021920:  6C 61 73 74 20 63 68 61 72 61 63 74 65 72 0D 0A    last character..
021930:  09 6C 64 20 61 2C 22 27 22 3A 20 6C 64 20 28 63    .ld a,"'": ld (c
021940:  68 61 72 29 2C 61 09 09 09 3B 4E 6F 6E 2D 41 53    har),a...;Non-AS
021950:  43 49 49 20 63 68 61 72 20 77 61 73 20 61 70 6F    CII char was apo
021960:  73 74 72 6F 70 68 65 0D 0A 09 64 65 63 20 69 79    strophe...dec iy
021970:  3A 20 64 65 63 20 62 3A 20 72 65 74 09 09 09 3B    : dec b: ret...;
021980:  53 68 6F 72 74 65 6E 20 77 6F 72 64 20 62 79 20    Shorten word by 
021990:  6F 6E 65 20 6C 65 74 74 65 72 0D 0A 0D 0A 09 3B    one letter.....;
0219A0:  09 09 50 61 74 63 68 20 69 66 20 77 6F 72 64 20    ..Patch if word 
0219B0:  65 6E 64 73 20 69 6E 20 22 27 73 22 0D 0A 0D 0A    ends in "'s"....
0219C0:  2E 61 70 6F 61 64 73 09 6C 64 20 61 2C 62 3A 20    .apoads.ld a,b: 
0219D0:  63 70 20 33 3A 20 72 65 74 20 63 0D 0A 09 6C 64    cp 3: ret c...ld
0219E0:  20 61 2C 28 69 79 2D 31 29 3A 20 63 61 6C 6C 20     a,(iy-1): call 
0219F0:  75 63 61 73 65 3A 20 63 70 20 22 53 22 3A 20 72    ucase: cp "S": r
021A00:  3B 43 6C 65 61 72 20 23 31 0D 0A 0D 0A 2E 73 70    ;Clear #1.....sp
021A10:  6C 5F 6C 70 09 63 61 6C 6C 20 26 42 43 38 30 3A    l_lp.call &BC80:
021A20:  20 6A 70 20 6E 63 2C 73 70 6C 65 6F 66 3A 20 6C     jp nc,spleof: l
021A30:  64 20 63 2C 61 09 3B 47 65 74 20 63 68 61 72 61    d c,a.;Get chara
021A40:  63 74 65 72 2C 20 65 78 69 74 20 69 66 20 45 4F    cter, exit if EO
021A50:  46 0D 0A 09 63 61 6C 6C 20 61 73 63 20 20 3A 20    F...call asc  : 
021A60:  6A 70 20 63 20 2C 69 73 77 6F 72 64 09 09 3B 20    jp c ,isword..; 
021A70:  7C 20 69 66 20 41 53 43 49 49 2C 20 67 6F 20 74    | if ASCII, go t
021A80:  6F 20 77 6F 72 64 20 72 6F 75 74 69 6E 65 0D 0A    o word routine..
021A90:  09 63 61 6C 6C 20 26 42 43 39 35 3A 20 6A 70 20    .call &BC95: jp 
021AA0:  6E 63 2C 70 61 75 73 65 09 3A 20 6C 64 20 61 2C    nc,pause.: ld a,
021AB0:  63 09 3B 57 72 69 74 65 20 63 68 61 72 61 63 74    c.;Write charact
021AC0:  65 72 0D 0A 09 63 61 6C 6C 20 64 69 73 70 20 3A    er...call disp :
021AD0:  20 6A 70 20 20 20 20 73 70 6C 5F 6C 70 09 09 3B     jp    spl_lp..;
021AE0:  44 69 73 70 6C 61 79 20 6F 6E 2D 73 63 72 65 65    Display on-scree
021AF0:  6E 20 61 6E 64 20 6C 6F 6F 70 0D 0A 0D 0A 09 3B    n and loop.....;
021B00:  2B 2B 2B 20 53 45 43 54 09 57 6F 72 64 20 65 6E    +++ SECT.Word en
021B10:  63 6F 75 6E 74 65 72 65 64 0D 0A 0D 0A 2E 69 73    countered.....is
021B20:  77 6F 72 64 09 6C 64 20 68 6C 2C 28 77 6F 72 64    word.ld hl,(word
021B30:  73 29 3A 20 69 6E 63 20 68 6C 3A 20 6C 64 20 28    s): inc hl: ld (
021B40:  77 6F 72 64 73 29 2C 68 6C 09 3B 49 6E 63 72 65    words),hl.;Incre
021B50:  61 73 65 20 77 6F 72 64 20 63 6F 75 6E 74 0D 0A    ase word count..
021B60:  09 6C 64 20 69 79 2C 77 6F 72 64 09 09 09 09 3B    .ld iy,word....;
021B70:  53 74 6F 72 65 20 66 69 72 73 74 20 63 68 61 72    Store first char
021B80:  61 63 74 65 72 0D 0A 09 6C 64 20 28 69 79 29 2C    acter...ld (iy),
021B90:  61 3A 20 6C 64 20 62 2C 31 3A 20 69 6E 63 20 69    a: ld b,1: inc i
021BA0:  79 09 09 3B 20 7C 0D 0A 0D 0A 2E 69 73 77 5F 6C    y..; |.....isw_l
021BB0:  70 09 63 61 6C 6C 20 26 42 43 38 30 3A 20 6A 70    p.call &BC80: jp
021BC0:  20 6E 63 2C 69 73 6E 61 73 63 09 09 3B 43 6F 70     nc,isnasc..;Cop
021BD0:  79 20 6F 75 74 20 77 6F 72 64 0D 0A 09 63 61 6C    y out word...cal
021BE0:  6C 20 61 73 63 61 20 3A 20 6A 72 20 6E 63 2C 69    l asca : jr nc,i
021BF0:  73 6E 61 73 63 09 09 3B 20 7C 0D 0A 09 6C 64 20    snasc..; |...ld 
021C00:  65 74 20 6E 7A 0D 0A 09 6C 64 20 61 2C 28 69 79    et nz...ld a,(iy
021C10:  2D 32 29 3A 20 09 09 20 63 70 20 22 27 22 3A 20    -2): .. cp "'": 
021C20:  72 65 74 20 6E 7A 0D 0A 09 63 61 6C 6C 20 26 42    ret nz...call &B
021C30:  43 38 36 09 09 09 09 3B 52 65 74 75 72 6E 20 6C    C86....;Return l
021C40:  61 73 74 20 63 68 61 72 61 63 74 65 72 0D 0A 09    ast character...
021C50:  6C 64 20 61 2C 32 35 33 20 20 20 3A 20 6C 64 20    ld a,253   : ld 
021C60:  28 63 68 61 72 20 29 2C 61 09 09 3B 4E 6F 6E 2D    (char ),a..;Non-
021C70:  41 53 43 49 49 20 63 68 61 72 20 69 73 20 22 27    ASCII char is "'
021C80:  73 22 0D 0A 09 6C 64 20 61 2C 28 69 79 2D 31 29    s"...ld a,(iy-1)
021C90:  3A 20 6C 64 20 28 63 68 61 72 73 29 2C 61 09 09    : ld (chars),a..
021CA0:  3B 20 7C 20 73 74 6F 72 65 20 74 79 70 65 20 6F    ; | store type o
021CB0:  66 20 53 0D 0A 09 64 65 63 20 69 79 3A 20 64 65    f S...dec iy: de
021CC0:  63 20 62 09 09 09 09 3B 53 68 6F 72 74 65 6E 20    c b....;Shorten 
021CD0:  77 6F 72 64 20 62 79 20 74 77 6F 20 6C 65 74 74    word by two lett
021CE0:  65 72 73 0D 0A 09 64 65 63 20 69 79 3A 20 64 65    ers...dec iy: de
021CF0:  63 20 62 3A 20 72 65 74 09 09 09 3B 20 7C 0D 0A    c b: ret...; |..
021D00:  0D 0A 09 3B 2D 2D 2D 20 73 75 62 72 09 50 75 74    ...;--- subr.Put
021D10:  20 6E 6F 6E 2D 41 53 43 49 49 20 63 68 61 72 61     non-ASCII chara
021D20:  63 74 65 72 20 74 6F 20 66 69 6C 65 2C 20 70 61    cter to file, pa
021D30:  74 63 68 69 6E 67 20 69 66 20 22 27 73 22 0D 0A    tching if "'s"..
021D40:  0D 0A 2E 70 75 74 63 68 72 09 63 70 20 32 35 33    ...putchr.cp 253
021D50:  09 3A 20 6A 70 20 6E 7A 2C 26 42 43 39 35 0D 0A    .: jp nz,&BC95..
021D60:  09 6C 64 20 61 2C 22 27 22 3A 20 63 61 6C 6C 20    .ld a,"'": call 
021D70:  64 69 73 70 0D 0A 09 6C 64 20 61 2C 22 27 22 3A    disp...ld a,"'":
021D80:  20 63 61 6C 6C 20 26 42 43 39 35 0D 0A 09 6C 64     call &BC95...ld
021D90:  20 61 2C 28 63 68 61 72 73 29 3A 20 6C 64 20 63     a,(chars): ld c
021DA0:  2C 61 3A 20 6A 70 20 26 42 43 39 35 0D 0A 0D 0A    ,a: jp &BC95....
021DB0:  0D 0A 09 3B 2B 2B 2B 20 53 45 43 54 09 51 75 69    ...;+++ SECT.Qui
021DC0:  74 20 73 70 65 6C 6C 2D 63 68 65 63 6B 69 6E 67    t spell-checking
021DD0:  0D 0A 0D 0A 2E 71 75 69 74 09 63 61 6C 6C 20 26    .....quit.call &
021DE0:  42 43 37 44 3A 20 6A 70 20 72 65 73 75 6D 65 0D    BC7D: jp resume.
021DF0:  0A 0D 0A 0D 0A 09 3B 2B 2B 2B 20 53 45 43 54 09    ......;+++ SECT.
021E00:  28 69 79 29 2C 61 3A 20 69 6E 63 20 62 3A 20 69    (iy),a: inc b: i
021E10:  6E 63 20 69 79 09 09 3B 20 7C 0D 0A 09 6C 64 20    nc iy..; |...ld 
021E20:  61 2C 62 3A 20 63 70 20 33 32 3A 20 6A 72 20 6E    a,b: cp 32: jr n
021E30:  7A 2C 69 73 77 5F 6C 70 09 09 3B 20 7C 20 6D 61    z,isw_lp..; | ma
021E40:  78 69 6D 75 6D 20 33 32 20 63 68 61 72 61 63 74    ximum 32 charact
021E50:  65 72 73 0D 0A 09 6C 64 20 61 2C 32 35 34 09 09    ers...ld a,254..
021E60:  09 09 3B 20 7C 20 20 7C 20 32 35 34 20 28 69 67    ..; |  | 254 (ig
021E70:  6E 6F 72 65 64 29 20 69 66 20 6F 76 65 72 66 6C    nored) if overfl
021E80:  6F 77 0D 0A 0D 0A 2E 69 73 6E 61 73 63 09 6C 64    ow.....isnasc.ld
021E90:  20 28 63 68 61 72 29 2C 61 09 09 09 09 3B 53 74     (char),a....;St
021EA0:  6F 72 65 20 6E 6F 6E 2D 41 53 43 49 49 20 63 68    ore non-ASCII ch
021EB0:  61 72 61 63 74 65 72 0D 0A 09 63 61 6C 6C 20 61    aracter...call a
021EC0:  70 6F 61 64 6A 09 09 09 09 3B 49 66 20 6C 61 73    poadj....;If las
021ED0:  74 20 61 70 6F 73 74 72 6F 70 68 65 2C 20 70 61    t apostrophe, pa
021EE0:  74 63 68 0D 0A 09 6C 64 20 61 2C 28 69 79 2D 31    tch...ld a,(iy-1
021EF0:  29 3A 20 6F 72 20 31 32 38 3A 20 6C 64 20 28 69    ): or 128: ld (i
021F00:  79 2D 31 29 2C 61 09 3B 53 65 74 20 68 69 67 68    y-1),a.;Set high
021F10:  20 62 69 74 20 6F 66 20 6C 61 73 74 20 6C 65 74     bit of last let
021F20:  74 65 72 0D 0A 09 6C 64 20 61 2C 62 3A 20 63 70    ter...ld a,b: cp
021F30:  20 31 20 3A 20 6A 70 20 7A 2C 70 75 74 77 72 64     1 : jp z,putwrd
021F40:  09 09 3B 49 66 20 6F 6E 65 20 6C 65 74 74 65 72    ..;If one letter
021F50:  20 6C 6F 6E 67 2C 20 66 6F 72 67 65 74 20 69 74     long, forget it
021F60:  0D 0A 0D 0A 09 3B 2D 2D 2D 20 73 65 63 74 09 43    .....;--- sect.C
021F70:  68 65 63 6B 20 77 6F 72 64 0D 0A 0D 0A 2E 64 6F    heck word.....do
021F80:  5F 63 68 6B 09 63 61 6C 6C 20 63 68 65 63 6B 09    _chk.call check.
021F90:  09 20 20 3A 20 6A 70 20 63 2C 70 75 74 77 72 64    .  : jp c,putwrd
021FA0:  09 3B 49 73 20 69 74 20 69 6E 20 74 68 65 20 64    .;Is it in the d
021FB0:  69 63 74 69 6F 6E 61 72 79 3F 0D 0A 09 3A 3A 20    ictionary?...:: 
021FC0:  6C 64 20 62 63 2C 26 37 46 43 37 3A 20 6F 75 74    ld bc,&7FC7: out
021FD0:  20 28 63 29 2C 63 09 09 3B 49 73 20 69 74 20 69     (c),c..;Is it i
021FE0:  6E 20 74 68 65 20 75 73 65 72 20 64 69 63 74 69    n the user dicti
021FF0:  6F 6E 61 72 79 3F 0D 0A 09 6C 64 20 69 78 2C 28    onary?...ld ix,(
022000:  43 6F 6E 73 75 6C 74 20 77 6F 72 64 0D 0A 0D 0A    Consult word....
022010:  2E 63 6F 6E 73 6C 74 09 63 61 6C 6C 20 26 42 42    .conslt.call &BB
022020:  36 43 09 09 09 09 3B 53 63 72 65 65 6E 20 64 69    6C....;Screen di
022030:  73 70 6C 61 79 0D 0A 09 6C 64 20 68 6C 2C 63 6F    splay...ld hl,co
022040:  6E 5F 74 78 3A 20 63 61 6C 6C 20 73 74 72 69 6E    n_tx: call strin
022050:  67 09 09 3B 20 7C 0D 0A 0D 0A 09 63 61 6C 6C 20    g..; |.....call 
022060:  63 6F 6E 5F 66 64 09 09 09 09 3B 48 4C 20 3D 20    con_fd....;HL = 
022070:  63 6C 6F 73 65 73 74 20 77 6F 72 64 20 69 6E 20    closest word in 
022080:  64 69 63 74 69 6F 6E 61 72 79 0D 0A 2E 63 6F 6E    dictionary...con
022090:  70 72 74 09 70 75 73 68 20 68 6C 3A 20 6C 64 20    prt.push hl: ld 
0220A0:  68 6C 2C 26 30 46 30 31 3A 20 63 61 6C 6C 20 26    hl,&0F01: call &
0220B0:  42 42 37 35 3A 20 70 6F 70 20 68 6C 3B 50 72 69    BB75: pop hl;Pri
0220C0:  6E 74 20 69 74 0D 0A 09 70 75 73 68 20 68 6C 09    nt it...push hl.
0220D0:  09 09 09 09 3B 20 7C 0D 0A 09 20 6C 64 20 61 2C    ....; |... ld a,
0220E0:  32 34 3A 20 63 61 6C 6C 20 26 42 42 35 41 3A 20    24: call &BB5A: 
0220F0:  63 61 6C 6C 20 6E 65 77 09 09 3B 20 7C 0D 0A 09    call new..; |...
022100:  20 6C 64 20 61 2C 32 34 3A 20 63 61 6C 6C 20 26     ld a,24: call &
022110:  42 42 35 41 09 09 09 3B 20 7C 0D 0A 09 20 6C 64    BB5A...; |... ld
022120:  20 61 2C 31 38 3A 20 63 61 6C 6C 20 26 42 42 35     a,18: call &BB5
022130:  41 09 09 09 3B 20 7C 0D 0A 09 70 6F 70 20 68 6C    A...; |...pop hl
022140:  09 09 09 09 09 3B 20 7C 0D 0A 0D 0A 2E 63 6F 6E    .....; |.....con
022150:  6B 65 79 09 63 61 6C 6C 20 26 42 42 30 36 3A 20    key.call &BB06: 
022160:  63 61 6C 6C 20 75 63 61 73 65 09 09 09 3B 47 65    call ucase...;Ge
022170:  74 20 6B 65 79 70 72 65 73 73 0D 0A 09 63 70 20    t keypress...cp 
022180:  22 55 22 3A 20 6A 72 20 7A 2C 75 73 65 20 20 3A    "U": jr z,use  :
022190:  20 63 70 20 31 33 20 3A 20 6A 72 20 7A 2C 75 73     cp 13 : jr z,us
0221A0:  65 09 3B 20 7C 20 75 73 65 3F 0D 0A 09 63 70 20    e.; | use?...cp 
0221B0:  22 51 22 3A 20 6A 72 20 7A 2C 63 6F 6E 71 74 3A    "Q": jr z,conqt:
0221C0:  20 63 70 20 32 35 32 3A 20 6A 72 20 7A 2C 63 6F     cp 252: jr z,co
0221D0:  6E 71 74 09 3B 20 7C 20 71 75 69 74 3F 0D 0A 09    nqt.; | quit?...
0221E0:  63 70 20 22 4E 22 3A 20 6A 72 20 7A 2C 63 6F 6E    cp "N": jr z,con
0221F0:  6E 78 3A 20 63 70 20 32 34 31 3A 20 6A 72 20 7A    nx: cp 241: jr z
022200:  75 73 5F 74 6F 70 29 3A 20 63 61 6C 6C 20 63 64    us_top): call cd
022210:  69 63 74 09 09 3B 20 7C 0D 0A 09 3A 3A 20 6C 64    ict..; |...:: ld
022220:  20 62 63 2C 26 37 46 43 30 3A 20 6F 75 74 20 28     bc,&7FC0: out (
022230:  63 29 2C 63 20 3A 20 6A 70 20 63 2C 70 75 74 77    c),c : jp c,putw
022240:  72 64 09 3B 20 7C 0D 0A 09 6C 64 20 69 78 2C 28    rd.; |...ld ix,(
022250:  69 67 5F 74 6F 70 29 3A 20 63 61 6C 6C 20 63 64    ig_top): call cd
022260:  69 63 74 3A 20 6A 70 20 63 2C 70 75 74 77 72 64    ict: jp c,putwrd
022270:  09 3B 49 73 20 69 74 20 69 6E 20 74 68 65 20 69    .;Is it in the i
022280:  67 6E 6F 72 65 20 64 69 63 74 69 6F 6E 61 72 79    gnore dictionary
022290:  3F 0D 0A 09 6C 64 20 62 63 2C 32 3A 20 63 61 6C    ?...ld bc,2: cal
0222A0:  6C 20 26 42 42 42 37 09 09 09 3B 53 65 6C 65 63    l &BBB7...;Selec
0222B0:  74 20 73 74 72 65 61 6D 20 32 0D 0A 2E 6F 70 74    t stream 2...opt
0222C0:  69 6F 6E 09 63 61 6C 6C 20 26 42 42 39 43 3A 20    ion.call &BB9C: 
0222D0:  6C 64 20 68 6C 2C 77 6F 72 64 20 20 3A 20 63 61    ld hl,word  : ca
0222E0:  6C 6C 20 73 74 72 37 09 3B 50 72 69 6E 74 20 77    ll str7.;Print w
0222F0:  6F 72 64 20 69 6E 20 69 6E 76 65 72 73 65 0D 0A    ord in inverse..
022300:  09 63 61 6C 6C 20 26 42 42 39 43 3A 20 6C 64 20    .call &BB9C: ld 
022310:  68 6C 2C 6E 6F 74 66 74 78 3A 20 63 61 6C 6C 20    hl,notftx: call 
022320:  73 74 72 69 6E 67 09 3B 20 7C 0D 0A 09 6C 64 20    string.; |...ld 
022330:  68 6C 2C 6F 70 74 5F 74 78 3A 20 63 61 6C 6C 20    hl,opt_tx: call 
022340:  73 74 72 69 6E 67 09 09 3B 50 72 69 6E 74 20 22    string..;Print "
022350:  6F 70 74 69 6F 6E 73 22 2E 2E 2E 0D 0A 2E 6F 70    options"......op
022360:  6B 65 79 70 09 63 61 6C 6C 20 26 42 42 30 36 3A    keyp.call &BB06:
022370:  20 63 61 6C 6C 20 75 63 61 73 65 09 09 09 3B 47     call ucase...;G
022380:  65 74 20 6B 65 79 70 72 65 73 73 0D 0A 09 3A 20    et keypress...: 
022390:  63 70 20 22 45 22 3A 20 6A 70 20 7A 20 2C 65 64    cp "E": jp z ,ed
0223A0:  69 74 09 09 09 3B 20 7C 20 65 64 69 74 20 77 6F    it...; | edit wo
0223B0:  72 64 3F 0D 0A 09 3A 20 63 70 20 22 41 22 3A 20    rd?...: cp "A": 
0223C0:  6A 70 20 7A 20 2C 69 67 6E 61 6C 6C 09 09 09 3B    jp z ,ignall...;
0223D0:  20 7C 20 69 67 6E 6F 72 65 20 61 6C 6C 3F 0D 0A     | ignore all?..
0223E0:  09 3A 20 63 70 20 22 4C 22 3A 20 6A 70 20 7A 20    .: cp "L": jp z 
0223F0:  2C 6C 65 61 72 6E 09 09 09 3B 20 7C 20 6C 65 61    ,learn...; | lea
022400:  2C 63 6F 6E 6E 78 09 3B 20 7C 20 6E 65 78 74 3F    ,connx.; | next?
022410:  0D 0A 09 63 70 20 22 50 22 3A 20 6A 72 20 7A 2C    ...cp "P": jr z,
022420:  63 6F 6E 70 72 3A 20 63 70 20 32 34 30 3A 20 6A    conpr: cp 240: j
022430:  72 20 7A 2C 63 6F 6E 70 72 09 3B 20 7C 20 70 72    r z,conpr.; | pr
022440:  65 76 69 6F 75 73 3F 0D 0A 09 6A 72 20 63 6F 6E    evious?...jr con
022450:  6B 65 79 0D 0A 0D 0A 2E 75 73 65 09 6C 64 20 68    key.....use.ld h
022460:  6C 2C 6E 65 77 77 72 64 3A 20 6C 64 20 62 63 2C    l,newwrd: ld bc,
022470:  33 33 09 09 09 3B 43 6F 70 79 20 69 66 20 74 6F    33...;Copy if to
022480:  20 62 65 20 75 73 65 64 0D 0A 09 6C 64 20 64 65     be used...ld de
022490:  2C 77 6F 72 64 20 20 3A 20 6C 64 69 72 3A 20 6A    ,word  : ldir: j
0224A0:  70 20 72 65 73 75 6D 65 09 09 3B 20 7C 0D 0A 0D    p resume..; |...
0224B0:  0A 2E 63 6F 6E 6E 78 09 6C 64 20 64 2C 68 3A 20    ..connx.ld d,h: 
0224C0:  6C 64 20 65 2C 6C 0D 0A 2E 63 6F 6E 6E 31 09 63    ld e,l...conn1.c
0224D0:  61 6C 6C 20 6C 64 61 68 6C 69 3A 20 61 6E 64 20    all ldahli: and 
0224E0:  31 32 38 3A 20 6A 72 20 7A 2C 63 6F 6E 6E 31 09    128: jr z,conn1.
0224F0:  3B 46 61 73 74 20 66 6F 72 77 61 72 64 20 74 6F    ;Fast forward to
022500:  20 65 6E 64 20 6F 66 20 77 6F 72 64 0D 0A 2E 63     end of word...c
022510:  6F 6E 6E 32 09 63 61 6C 6C 20 6C 64 61 68 6C 69    onn2.call ldahli
022520:  3A 20 63 70 20 20 32 36 20 3A 20 6A 72 20 7A 2C    : cp  26 : jr z,
022530:  63 6F 6E 65 6F 66 09 3B 45 6E 64 20 6F 66 20 66    coneof.;End of f
022540:  69 6C 65 3F 0D 0A 09 09 20 20 20 20 20 6F 72 20    ile?....     or 
022550:  20 61 20 20 3A 20 6A 72 20 7A 2C 63 6F 6E 6E 32     a  : jr z,conn2
022560:  09 3B 45 6E 64 20 6F 66 20 6C 65 74 74 65 72 3F    .;End of letter?
022570:  0D 0A 09 64 65 63 20 68 6C 3A 20 6A 70 20 63 6F    ...dec hl: jp co
022580:  6E 70 72 74 09 09 09 3B 4E 6F 2C 20 73 6F 20 64    nprt...;No, so d
022590:  6F 20 74 68 65 20 6C 65 74 74 65 72 0D 0A 2E 63    o the letter...c
0225A0:  6F 6E 65 6F 66 09 6C 64 20 68 2C 64 3A 20 6C 64    oneof.ld h,d: ld
0225B0:  20 6C 2C 65 3A 20 6A 70 20 63 6F 6E 6B 65 79 09     l,e: jp conkey.
0225C0:  09 3B 45 6E 64 20 6F 66 20 66 69 6C 65 20 2D 20    .;End of file - 
0225D0:  70 61 6E 69 63 21 0D 0A 0D 0A 2E 63 6F 6E 70 72    panic!.....conpr
0225E0:  09 6C 64 20 61 2C 68 3A 20 6F 72 20 6C 3A 20 6A    .ld a,h: or l: j
0225F0:  72 20 7A 2C 63 6F 6E 6B 65 79 09 09 3B 41 6C 72    r z,conkey..;Alr
022600:  72 6E 3F 0D 0A 09 3A 20 63 70 20 22 51 22 3A 20    rn?...: cp "Q": 
022610:  6A 70 20 7A 20 2C 71 75 69 74 09 09 09 3B 20 7C    jp z ,quit...; |
022620:  20 71 75 69 74 3F 0D 0A 09 3A 20 63 70 20 22 43     quit?...: cp "C
022630:  22 3A 20 6A 70 20 7A 20 2C 63 6F 6E 73 6C 74 09    ": jp z ,conslt.
022640:  09 09 3B 20 7C 20 63 6F 6E 73 75 6C 74 3F 0D 0A    ..; | consult?..
022650:  09 3A 20 63 70 20 22 49 22 3A 20 6A 70 20 6E 7A    .: cp "I": jp nz
022660:  2C 6F 70 6B 65 79 70 09 09 09 3B 20 7C 20 69 67    ,opkeyp...; | ig
022670:  6E 6F 72 65 3F 0D 0A 2E 72 65 73 75 6D 65 09 63    nore?...resume.c
022680:  61 6C 6C 20 26 42 42 36 43 09 09 09 09 3B 43 6C    all &BB6C....;Cl
022690:  65 61 72 20 73 63 72 65 65 6E 0D 0A 09 6C 64 20    ear screen...ld 
0226A0:  62 63 2C 32 3A 20 63 61 6C 6C 20 26 42 42 42 37    bc,2: call &BBB7
0226B0:  09 09 09 3B 44 65 73 65 6C 65 63 74 20 73 74 72    ...;Deselect str
0226C0:  65 61 6D 20 32 0D 0A 0D 0A 09 3B 2D 2D 2D 20 73    eam 2.....;--- s
0226D0:  65 63 74 09 53 65 6E 64 20 77 6F 72 64 20 74 6F    ect.Send word to
0226E0:  20 66 69 6C 65 0D 0A 0D 0A 2E 70 75 74 77 72 64     file.....putwrd
0226F0:  09 6C 64 20 69 79 2C 77 6F 72 64 09 09 09 09 3B    .ld iy,word....;
022700:  4F 75 74 70 75 74 20 77 6F 72 64 20 74 6F 20 64    Output word to d
022710:  69 73 63 0D 0A 2E 70 75 74 77 6C 70 09 6C 64 20    isc...putwlp.ld 
022720:  61 2C 28 69 79 29 3A 20 61 6E 64 20 31 32 37 09    a,(iy): and 127.
022730:  09 09 3B 57 72 69 74 65 20 65 6E 74 69 72 65 20    ..;Write entire 
022740:  77 6F 72 64 20 75 6E 74 69 6C 20 62 69 74 20 37    word until bit 7
022750:  0D 0A 09 3A 20 6C 64 20 63 2C 61 3A 20 63 61 6C    ...: ld c,a: cal
022760:  6C 20 26 42 43 39 35 20 3A 20 6A 70 20 6E 63 2C    l &BC95 : jp nc,
022770:  70 61 75 73 65 09 3B 20 7C 20 77 72 69 74 65 20    pause.; | write 
022780:  63 68 61 72 61 63 74 65 72 0D 0A 09 3A 20 6C 64    character...: ld
022790:  20 61 2C 63 3A 20 63 61 6C 6C 20 64 69 73 70 20     a,c: call disp 
0227A0:  20 3A 20 6C 64 20 61 2C 28 69 79 29 09 3B 20 7C     : ld a,(iy).; |
0227B0:  20 64 69 73 70 6C 61 79 20 6F 6E 20 73 63 72 65     display on scre
0227C0:  65 6E 0D 0A 09 3A 20 69 6E 63 20 69 79 3A 20 61    en...: inc iy: a
0227D0:  6E 64 20 31 32 38 20 20 20 20 3A 20 6A 72 20 7A    nd 128    : jr z
0227E0:  2C 70 75 74 77 6C 70 09 3B 20 7C 0D 0A 09 6C 64    ,putwlp.; |...ld
0227F0:  20 61 2C 28 63 68 61 72 29 3A 20 63 70 20 32 35     a,(char): cp 25
022800:  54 72 61 63 6B 2D 49 6E 66 6F 0D 0A 00 00 00 00    Track-Info......
022810:  1D 00 01 00 02 09 4E E5 1D 00 C3 02 00 00 00 02    ......N.........
022820:  1D 00 C8 02 00 00 00 02 1D 00 C4 02 00 00 00 02    ................
022830:  1D 00 C9 02 00 00 00 02 1D 00 C5 02 00 00 00 02    ................
022840:  1D 00 C1 02 00 00 00 02 1D 00 C6 02 00 00 00 02    ................
022850:  1D 00 C2 02 00 00 00 02 1D 00 C7 02 00 00 00 02    ................
022860:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
022870:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
022880:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
022890:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
0228A0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
0228B0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
0228C0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
0228D0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
0228E0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
0228F0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
022900:  77 5F 6C 63 09 09 09 09 09 3B 20 7C 0D 0A 2E 6E    w_lc.....; |...n
022910:  65 77 5F 75 63 09 63 61 6C 6C 20 6C 64 61 68 6C    ew_uc.call ldahl
022920:  20 3A 20 61 6E 64 20 31 32 37 20 20 20 3A 20 63     : and 127   : c
022930:  61 6C 6C 20 26 42 42 35 41 20 3A 20 6C 64 20 28    all &BB5A : ld (
022940:  69 78 29 2C 61 3A 20 69 6E 63 20 69 78 09 3B 59    ix),a: inc ix.;Y
022950:  65 73 0D 0A 09 63 61 6C 6C 20 6C 64 61 68 6C 69    es...call ldahli
022960:  3A 20 61 6E 64 20 31 32 38 20 20 20 3A 20 6A 72    : and 128   : jr
022970:  20 7A 2C 6E 65 77 5F 75 63 3A 20 6A 72 20 6E 65     z,new_uc: jr ne
022980:  77 5F 66 6E 09 09 3B 20 7C 0D 0A 2E 6E 65 77 5F    w_fn..; |...new_
022990:  6C 63 09 63 61 6C 6C 20 6C 64 61 68 6C 20 3A 20    lc.call ldahl : 
0229A0:  63 61 6C 6C 20 6C 63 61 73 65 3A 20 63 61 6C 6C    call lcase: call
0229B0:  20 26 42 42 35 41 20 3A 20 6C 64 20 28 69 78 29     &BB5A : ld (ix)
0229C0:  2C 61 3A 20 69 6E 63 20 69 78 09 3B 4E 6F 0D 0A    ,a: inc ix.;No..
0229D0:  09 63 61 6C 6C 20 6C 64 61 68 6C 69 3A 20 61 6E    .call ldahli: an
0229E0:  64 20 31 32 38 20 20 20 3A 20 6A 72 20 7A 2C 6E    d 128   : jr z,n
0229F0:  65 77 5F 6C 63 3A 20 6A 72 20 6E 65 77 5F 66 6E    ew_lc: jr new_fn
022A00:  09 09 3B 20 7C 0D 0A 2E 6E 65 77 5F 66 6E 09 6C    ..; |...new_fn.l
022A10:  64 20 61 2C 28 69 78 2D 31 29 3A 20 6F 72 20 20    d a,(ix-1): or  
022A20:  31 32 38 09 09 09 09 09 3B 53 65 74 20 62 69 74    128.....;Set bit
022A30:  20 37 0D 0A 09 6C 64 20 28 69 78 2D 31 29 2C 61     7...ld (ix-1),a
022A40:  3A 20 72 65 74 09 09 09 09 09 3B 20 7C 0D 0A 0D    : ret.....; |...
022A50:  0A 09 3B 2D 2D 2D 20 73 75 62 72 09 46 69 6E 64    ..;--- subr.Find
022A60:  20 69 6E 69 74 69 61 6C 20 6C 65 74 74 65 72 20     initial letter 
022A70:  66 6F 72 20 48 4C 0D 0A 0D 0A 2E 69 6E 69 74 09    for HL.....init.
022A80:  6C 64 20 69 79 2C 6C 65 74 74 65 72 3A 20 6C 64    ld iy,letter: ld
022A90:  20 61 2C 36 34 0D 0A 2E 69 6E 69 74 6C 70 09 6C     a,64...initlp.l
022AA0:  64 20 65 2C 28 69 79 29 3A 20 69 6E 63 20 69 79    d e,(iy): inc iy
022AB0:  0D 0A 09 6C 64 20 64 2C 28 69 79 29 3A 20 69 6E    ...ld d,(iy): in
022AC0:  63 20 69 79 0D 0A 09 70 75 73 68 20 68 6C 3A 20    c iy...push hl: 
022AD0:  6F 72 20 61 3A 20 73 62 63 20 68 6C 2C 64 65 3A    or a: sbc hl,de:
022AE0:  20 70 6F 70 20 68 6C 0D 0A 09 72 65 74 20 63 3A     pop hl...ret c:
022AF0:  20 69 6E 63 20 61 3A 20 6A 72 20 69 6E 69 74 6C     inc a: jr initl
022B00:  30 3A 20 72 65 74 0D 0A 2E 64 69 73 70 73 70 09    0: ret...dispsp.
022B10:  6C 64 20 61 2C 33 32 3A 20 72 65 74 0D 0A 0D 0A    ld a,32: ret....
022B20:  09 3B 2D 2D 2D 20 73 75 62 73 09 43 68 65 63 6B    .;--- subs.Check
022B30:  20 64 6F 63 75 6D 65 6E 74 20 73 75 62 72 6F 75     document subrou
022B40:  74 69 6E 65 73 0D 0A 0D 0A 2E 72 65 74 79 70 65    tines.....retype
022B50:  09 6C 64 20 68 6C 2C 28 68 65 61 64 65 72 29 3A    .ld hl,(header):
022B60:  20 6C 64 20 62 2C 31 32 38 09 09 09 09 3B 47 65     ld b,128....;Ge
022B70:  6E 65 72 61 74 65 20 68 65 61 64 65 72 0D 0A 2E    nerate header...
022B80:  72 65 74 6C 70 09 6C 64 20 61 2C 28 68 6C 29 3A    retlp.ld a,(hl):
022B90:  20 63 61 6C 6C 20 26 42 43 39 35 3A 20 6A 72 20     call &BC95: jr 
022BA0:  6E 63 2C 72 65 74 65 72 72 09 09 09 3B 20 7C 0D    nc,reterr...; |.
022BB0:  0A 09 69 6E 63 20 68 6C 3A 20 64 6A 6E 7A 20 72    ..inc hl: djnz r
022BC0:  65 74 6C 70 3A 20 72 65 74 09 09 09 09 09 3B 20    etlp: ret.....; 
022BD0:  7C 0D 0A 2E 72 65 74 65 72 72 09 70 6F 70 20 68    |...reterr.pop h
022BE0:  6C 3A 20 6A 72 20 70 61 75 73 65 09 09 09 09 09    l: jr pause.....
022BF0:  3B 20 7C 0D 0A 2E 63 6C 73 31 09 6C 64 20 62 63    ; |...cls1.ld bc
022C00:  2C 31 3A 20 63 61 6C 6C 20 26 42 42 42 37 3A 20    ,1: call &BBB7: 
022C10:  63 61 6C 6C 20 26 42 42 36 43 3A 20 6C 64 20 62    call &BB6C: ld b
022C20:  63 2C 31 3A 20 6A 70 20 26 42 42 42 37 09 3B 43    c,1: jp &BBB7.;C
022C30:  4C 53 20 23 31 0D 0A 2E 63 6C 73 32 09 6C 64 20    LS #1...cls2.ld 
022C40:  62 63 2C 32 3A 20 63 61 6C 6C 20 26 42 42 42 37    bc,2: call &BBB7
022C50:  3A 20 63 61 6C 6C 20 26 42 42 36 43 3A 20 6C 64    : call &BB6C: ld
022C60:  20 62 63 2C 32 3A 20 6A 70 20 26 42 42 42 37 09     bc,2: jp &BBB7.
022C70:  3B 43 4C 53 20 23 32 0D 0A 2E 70 61 75 73 65 09    ;CLS #2...pause.
022C80:  63 61 6C 6C 20 26 42 42 30 36 3A 20 6A 70 20 6F    call &BB06: jp o
022C90:  75 74 65 72 09 09 09 09 09 3B 50 61 75 73 65 2C    uter.....;Pause,
022CA0:  20 72 65 73 74 61 72 74 0D 0A 0D 0A 09 3B 2A 2A     restart.....;**
022CB0:  2A 20 52 4F 55 54 09 45 64 69 74 20 75 73 65 72    * ROUT.Edit user
022CC0:  20 64 69 63 74 69 6F 6E 61 72 79 0D 0A 0D 0A 2E     dictionary.....
022CD0:  75 5F 65 64 69 74 09 6C 64 20 68 6C 2C 28 75 73    u_edit.ld hl,(us
022CE0:  5F 74 6F 70 29 20 3A 20 6C 64 20 64 65 2C 26 34    _top) : ld de,&4
022CF0:  30 30 30 09 09 09 3B 44 6F 6E 27 74 20 65 64 69    000...;Don't edi
022D00:  70 0D 0A 0D 0A 0D 0A 0D 0A 09 3B 2B 2B 2B 20 53    p.........;+++ S
022D10:  45 43 54 09 45 64 69 74 20 77 6F 72 64 0D 0A 0D    ECT.Edit word...
022D20:  0A 2E 65 64 69 74 09 63 61 6C 6C 20 26 42 42 36    ..edit.call &BB6
022D30:  43 09 09 09 09 3B 43 6C 65 61 72 20 73 63 72 65    C....;Clear scre
022D40:  65 6E 0D 0A 09 6C 64 20 68 6C 2C 65 64 69 74 74    en...ld hl,editt
022D50:  78 3A 20 63 61 6C 6C 20 73 74 72 69 6E 67 09 09    x: call string..
022D60:  3B 50 72 6F 6D 70 74 0D 0A 09 6C 64 20 69 78 2C    ;Prompt...ld ix,
022D70:  69 6E 70 62 75 66 3A 20 63 61 6C 6C 20 69 6E 70    inpbuf: call inp
022D80:  75 74 09 09 3B 49 6E 70 75 74 0D 0A 09 70 75 73    ut..;Input...pus
022D90:  68 20 61 66 3A 20 70 75 73 68 20 62 63 3A 20 63    h af: push bc: c
022DA0:  61 6C 6C 20 26 42 42 36 43 09 09 3B 43 6C 65 61    all &BB6C..;Clea
022DB0:  72 20 73 63 72 65 65 6E 0D 0A 09 70 6F 70 20 62    r screen...pop b
022DC0:  63 3A 20 70 6F 70 20 61 66 09 09 09 09 3B 20 7C    c: pop af....; |
022DD0:  0D 0A 09 6A 70 20 63 2C 6F 70 74 69 6F 6E 3A 20    ...jp c,option: 
022DE0:  6C 64 20 61 2C 62 3A 20 6F 72 20 61 09 09 3B 49    ld a,b: or a..;I
022DF0:  66 20 45 53 43 2C 20 71 75 69 74 0D 0A 09 6A 70    f ESC, quit...jp
022E00:  20 7A 2C 6F 70 74 69 6F 6E 09 09 09 09 3B 49 66     z,option....;If
022E10:  20 73 74 72 69 6E 67 20 65 6D 70 74 79 2C 20 71     string empty, q
022E20:  75 69 74 0D 0A 0D 0A 09 6C 64 20 69 78 2C 69 6E    uit.....ld ix,in
022E30:  70 62 75 66 3A 20 6C 64 20 68 6C 2C 77 6F 72 64    pbuf: ld hl,word
022E40:  09 09 3B 43 6F 70 79 20 77 6F 72 64 20 66 72 6F    ..;Copy word fro
022E50:  6D 20 69 6E 70 75 74 20 62 75 66 66 65 72 0D 0A    m input buffer..
022E60:  2E 65 64 69 74 74 72 09 6C 64 20 61 2C 28 69 78    .edittr.ld a,(ix
022E70:  29 3A 20 69 6E 63 20 69 78 09 09 09 3B 20 7C 0D    ): inc ix...; |.
022E80:  0A 09 6C 64 20 28 68 6C 29 2C 61 3A 20 69 6E 63    ..ld (hl),a: inc
022E90:  20 68 6C 3A 20 64 6A 6E 7A 20 65 64 69 74 74 72     hl: djnz edittr
022EA0:  09 09 3B 20 7C 0D 0A 09 64 65 63 20 68 6C 3A 20    ..; |...dec hl: 
022EB0:  73 65 74 20 37 2C 28 68 6C 29 09 09 09 3B 20 7C    set 7,(hl)...; |
022EC0:  20 73 65 74 20 68 69 67 68 20 62 69 74 0D 0A 09     set high bit...
022ED0:  6C 64 20 62 63 2C 32 3A 20 63 61 6C 6C 20 26 42    ld bc,2: call &B
022EE0:  42 42 37 3A 20 6A 70 20 64 6F 5F 63 68 6B 09 09    BB7: jp do_chk..
022EF0:  3B 54 72 79 20 63 68 65 63 6B 69 6E 67 20 74 68    ;Try checking th
022F00:  74 20 69 66 20 6E 6F 74 20 74 68 65 72 65 0D 0A    t if not there..
022F10:  09 6F 72 20 61 3A 20 73 62 63 20 68 6C 2C 64 65    .or a: sbc hl,de
022F20:  3A 20 6A 70 20 7A 2C 6D 61 69 6E 09 09 09 3B 20    : jp z,main...; 
022F30:  7C 0D 0A 09 6C 64 20 62 63 2C 26 37 46 43 37 3A    |...ld bc,&7FC7:
022F40:  20 6F 75 74 20 28 63 29 2C 63 09 09 09 09 3B 42     out (c),c....;B
022F50:  61 6E 6B 20 73 77 69 74 63 68 0D 0A 09 63 61 6C    ank switch...cal
022F60:  6C 20 63 6C 65 61 72 0D 0A 0D 0A 09 6C 64 20 68    l clear.....ld h
022F70:  6C 2C 26 34 30 30 30 0D 0A 2E 65 64 5F 64 6F 73    l,&4000...ed_dos
022F80:  09 63 61 6C 6C 20 65 64 5F 73 63 72 0D 0A 09 70    .call ed_scr...p
022F90:  75 73 68 20 68 6C 0D 0A 09 20 6C 64 20 62 63 2C    ush hl... ld bc,
022FA0:  32 3A 20 63 61 6C 6C 20 26 42 42 42 37 3A 20 63    2: call &BBB7: c
022FB0:  61 6C 6C 20 26 42 42 36 43 0D 0A 09 20 6C 64 20    all &BB6C... ld 
022FC0:  68 6C 2C 65 64 69 5F 74 78 3A 20 63 61 6C 6C 20    hl,edi_tx: call 
022FD0:  73 74 72 69 6E 67 0D 0A 09 20 6C 64 20 69 78 2C    string... ld ix,
022FE0:  65 64 5F 74 61 62 3A 20 6C 64 20 68 6C 2C 26 31    ed_tab: ld hl,&1
022FF0:  31 30 31 0D 0A 2E 65 64 5F 6B 6C 70 09 20 63 61    101...ed_klp. ca
023000:  6C 6C 20 65 64 5F 6B 65 79 0D 0A 09 20 63 70 20    ll ed_key... cp 
023010:  22 41 22 3A 20 6A 70 20 7A 20 2C 65 64 5F 61 64    "A": jp z ,ed_ad
023020:  64 3A 20 63 70 20 31 32 37 3A 20 6A 70 20 7A 2C    d: cp 127: jp z,
023030:  65 64 5F 64 65 6C 0D 0A 09 20 63 70 20 22 4E 22    ed_del... cp "N"
023040:  3A 20 6A 70 20 7A 20 2C 65 64 5F 6E 78 74 3A 20    : jp z ,ed_nxt: 
023050:  63 70 20 22 50 22 3A 20 6A 70 20 7A 2C 65 64 5F    cp "P": jp z,ed_
023060:  70 72 76 0D 0A 09 20 63 70 20 22 51 22 3A 20 6A    prv... cp "Q": j
023070:  72 20 6E 7A 2C 65 64 5F 6B 6C 70 0D 0A 09 20 6C    r nz,ed_klp... l
023080:  64 20 62 63 2C 32 3A 20 63 61 6C 6C 20 26 42 42    d bc,2: call &BB
023090:  42 37 0D 0A 09 70 6F 70 20 68 6C 0D 0A 0D 0A 09    B7...pop hl.....
0230A0:  6C 64 20 62 63 2C 26 37 46 43 30 3A 20 6F 75 74    ld bc,&7FC0: out
0230B0:  20 28 63 29 2C 63 3A 20 6A 70 20 6F 75 74 65 72     (c),c: jp outer
0230C0:  09 3B 51 75 69 74 2C 20 62 61 6E 6B 20 73 77 69    .;Quit, bank swi
0230D0:  74 63 68 0D 0A 0D 0A 09 3B 2D 2D 2D 20 72 6F 75    tch.....;--- rou
0230E0:  74 09 4E 65 78 74 20 73 63 72 65 65 6E 0D 0A 0D    t.Next screen...
0230F0:  0A 2E 65 64 5F 6E 78 74 09 6C 64 20 64 65 2C 28    ..ed_nxt.ld de,(
023100:  69 73 20 6F 6E 65 2E 2E 2E 21 0D 0A 0D 0A 0D 0A    is one...!......
023110:  09 3B 2B 2B 2B 20 53 45 43 54 09 49 67 6E 6F 72    .;+++ SECT.Ignor
023120:  65 20 61 6C 6C 20 6F 63 63 75 72 72 65 6E 63 65    e all occurrence
023130:  73 20 6F 66 20 77 6F 72 64 0D 0A 0D 0A 2E 69 67    s of word.....ig
023140:  6E 61 6C 6C 09 6C 64 20 68 6C 2C 28 69 67 5F 74    nall.ld hl,(ig_t
023150:  6F 70 29 09 09 09 09 3B 46 69 6E 64 20 77 68 65    op)....;Find whe
023160:  72 65 20 74 6F 20 61 64 64 0D 0A 09 6C 64 20 61    re to add...ld a
023170:  2C 68 3A 20 63 70 20 26 37 37 3A 20 6A 70 20 7A    ,h: cp &77: jp z
023180:  2C 64 63 66 75 6C 6C 09 09 3B 20 7C 0D 0A 09 63    ,dcfull..; |...c
023190:  61 6C 6C 20 61 64 64 77 72 64 3A 20 6C 64 20 28    all addwrd: ld (
0231A0:  69 67 5F 74 6F 70 29 2C 68 6C 09 09 3B 41 64 64    ig_top),hl..;Add
0231B0:  20 61 6E 64 20 75 70 64 61 74 65 20 70 6F 69 6E     and update poin
0231C0:  74 65 72 0D 0A 09 6A 70 20 72 65 73 75 6D 65 0D    ter...jp resume.
0231D0:  0A 0D 0A 09 3B 2B 2B 2B 20 53 45 43 54 09 4C 65    ....;+++ SECT.Le
0231E0:  61 72 6E 20 77 6F 72 64 0D 0A 0D 0A 2E 6C 65 61    arn word.....lea
0231F0:  72 6E 09 6C 64 20 68 6C 2C 28 75 73 5F 74 6F 70    rn.ld hl,(us_top
023200:  29 09 09 09 09 3B 46 69 6E 64 20 77 68 65 72 65    )....;Find where
023210:  20 74 6F 20 61 64 64 0D 0A 09 6C 64 20 61 2C 68     to add...ld a,h
023220:  3A 20 63 70 20 26 37 46 3A 20 6A 70 20 7A 2C 64    : cp &7F: jp z,d
023230:  63 66 75 6C 6C 09 09 3B 20 7C 0D 0A 09 6C 64 20    cfull..; |...ld 
023240:  62 63 2C 26 37 46 43 37 3A 20 6F 75 74 20 28 63    bc,&7FC7: out (c
023250:  29 2C 63 3A 20 63 61 6C 6C 20 61 64 64 77 72 64    ),c: call addwrd
023260:  09 3B 41 64 64 20 69 6E 20 62 61 6E 6B 73 2C 20    .;Add in banks, 
023270:  75 70 64 61 74 65 20 70 6F 69 6E 74 65 72 0D 0A    update pointer..
023280:  09 6C 64 20 62 63 2C 26 37 46 43 30 3A 20 6F 75    .ld bc,&7FC0: ou
023290:  74 20 28 63 29 2C 63 3A 20 6C 64 20 28 75 73 5F    t (c),c: ld (us_
0232A0:  74 6F 70 29 2C 68 6C 09 3B 20 7C 0D 0A 09 6A 70    top),hl.; |...jp
0232B0:  20 72 65 73 75 6D 65 09 09 09 09 3B 20 7C 0D 0A     resume....; |..
0232C0:  0D 0A 09 3B 2D 2D 2D 20 73 75 62 72 09 41 64 64    ...;--- subr.Add
0232D0:  20 77 6F 72 64 20 74 6F 20 64 69 63 74 69 6F 6E     word to diction
0232E0:  61 72 79 0D 0A 0D 0A 2E 61 64 64 77 72 64 09 6C    ary.....addwrd.l
0232F0:  64 20 69 78 2C 77 6F 72 64 0D 0A 2E 61 64 64 77    d ix,word...addw
023300:  0A 2E 63 6F 6E 5F 6C 70 09 6C 64 20 61 2C 28 64    ..con_lp.ld a,(d
023310:  65 29 3A 20 63 61 6C 6C 20 75 63 61 73 65 3A 20    e): call ucase: 
023320:  6C 64 20 63 2C 61 09 09 3B 49 73 20 69 74 20 74    ld c,a..;Is it t
023330:  68 65 20 73 61 6D 65 3F 0D 0A 09 63 61 6C 6C 20    he same?...call 
023340:  6C 64 61 68 6C 3A 20 63 70 20 63 3A 20 6A 72 20    ldahl: cp c: jr 
023350:  6E 7A 2C 63 6F 6E 5F 66 66 09 09 3B 20 7C 0D 0A    nz,con_ff..; |..
023360:  09 69 6E 63 20 62 3A 20 69 6E 63 20 68 6C 3A 20    .inc b: inc hl: 
023370:  69 6E 63 20 64 65 09 09 09 3B 49 66 20 73 6F 2C    inc de...;If so,
023380:  20 69 6E 63 72 65 61 73 65 20 63 6F 75 6E 74 20     increase count 
023390:  61 6E 64 20 6C 6F 6F 70 0D 0A 09 61 6E 64 20 31    and loop...and 1
0233A0:  32 38 3A 20 6A 72 20 7A 2C 63 6F 6E 5F 6C 70 3A    28: jr z,con_lp:
0233B0:  20 6A 72 20 63 6F 6E 5F 72 77 09 09 3B 20 7C 0D     jr con_rw..; |.
0233C0:  0A 0D 0A 2E 63 6F 6E 5F 66 66 09 63 61 6C 6C 20    ....con_ff.call 
0233D0:  6C 64 61 68 6C 69 3A 20 6F 72 20 61 3A 20 6A 72    ldahli: or a: jr
0233E0:  20 7A 2C 63 6F 6E 5F 72 32 09 09 3B 46 61 73 74     z,con_r2..;Fast
0233F0:  20 66 6F 72 77 61 72 64 20 74 6F 20 65 6E 64 20     forward to end 
023400:  6F 66 20 77 6F 72 64 0D 0A 09 09 20 20 62 69 74    of word....  bit
023410:  20 37 2C 61 3A 20 6A 72 20 7A 2C 63 6F 6E 5F 66     7,a: jr z,con_f
023420:  66 09 09 3B 20 7C 0D 0A 09 6C 64 20 61 2C 28 62    f..; |...ld a,(b
023430:  65 73 74 29 3A 20 63 70 20 62 20 20 3A 20 6A 72    est): cp b  : jr
023440:  20 7A 20 2C 63 6F 6E 5F 6F 6C 09 3B 4C 6F 6F 70     z ,con_ol.;Loop
023450:  20 69 66 20 62 65 73 74 20 74 68 65 20 73 61 6D     if best the sam
023460:  65 0D 0A 09 09 09 20 20 20 20 20 6A 72 20 6E 63    e.....     jr nc
023470:  2C 63 6F 6E 5F 72 77 09 3B 49 66 20 74 68 65 72    ,con_rw.;If ther
023480:  65 20 77 61 73 20 61 20 62 65 74 74 65 72 2C 20    e was a better, 
023490:  72 65 77 69 6E 64 0D 0A 09 6C 64 20 61 2C 62 3A    rewind...ld a,b:
0234A0:  20 6C 64 20 28 62 65 73 74 29 2C 61 3A 20 6A 72     ld (best),a: jr
0234B0:  20 20 20 20 63 6F 6E 5F 6F 6C 09 3B 45 6C 73 65        con_ol.;Else
0234C0:  20 73 74 6F 72 65 20 61 73 20 62 65 73 74 20 61     store as best a
0234D0:  6E 64 20 63 6F 6E 74 69 6E 75 65 0D 0A 0D 0A 2E    nd continue.....
0234E0:  63 6F 6E 5F 72 32 09 64 65 63 20 68 6C 09 09 09    con_r2.dec hl...
0234F0:  09 09 3B 50 61 73 74 20 30 20 69 66 20 65 6E 64    ..;Past 0 if end
023500:  6C 70 09 6C 64 20 61 2C 28 69 78 29 3A 20 69 6E    lp.ld a,(ix): in
023510:  63 20 69 78 3A 20 63 61 6C 6C 20 75 63 61 73 65    c ix: call ucase
023520:  0D 0A 09 6C 64 20 28 68 6C 29 2C 61 3A 20 69 6E    ...ld (hl),a: in
023530:  63 20 68 6C 0D 0A 09 61 6E 64 20 31 32 38 3A 20    c hl...and 128: 
023540:  6A 72 20 7A 2C 61 64 64 77 6C 70 3A 20 72 65 74    jr z,addwlp: ret
023550:  0D 0A 0D 0A 09 3B 2D 2D 2D 20 73 75 62 72 09 43    .....;--- subr.C
023560:  6F 6D 70 6C 61 69 6E 20 74 68 61 74 20 64 69 63    omplain that dic
023570:  74 69 6F 6E 61 72 79 20 69 73 20 66 75 6C 6C 0D    tionary is full.
023580:  0A 0D 0A 2E 64 63 66 75 6C 6C 09 63 61 6C 6C 20    ....dcfull.call 
023590:  26 42 42 36 43 3A 20 6C 64 20 68 6C 2C 66 75 6C    &BB6C: ld hl,ful
0235A0:  6C 74 78 3A 20 63 61 6C 6C 20 73 74 72 69 6E 67    ltx: call string
0235B0:  0D 0A 09 63 61 6C 6C 20 26 42 42 30 36 3A 20 63    ...call &BB06: c
0235C0:  61 6C 6C 20 26 42 42 36 43 3A 20 6A 70 20 6F 70    all &BB6C: jp op
0235D0:  74 69 6F 6E 0D 0A 0D 0A 0D 0A 09 3B 2B 2B 2B 20    tion.......;+++ 
0235E0:  53 45 43 54 09 45 6E 64 20 6F 66 20 73 70 65 6C    SECT.End of spel
0235F0:  6C 69 6E 67 0D 0A 0D 0A 2E 73 70 6C 65 6F 66 09    ling.....spleof.
023600:  63 61 6C 6C 20 26 42 43 37 41 09 09 09 09 3B 43    call &BC7A....;C
023610:  6C 6F 73 65 20 69 6E 70 75 74 20 66 69 6C 65 0D    lose input file.
023620:  0A 09 63 61 6C 6C 20 26 42 43 38 46 09 09 09 09    ..call &BC8F....
023630:  3B 43 6C 6F 73 65 20 6F 75 74 70 75 74 20 66 69    ;Close output fi
023640:  6C 65 0D 0A 09 6C 64 20 62 63 2C 32 3A 20 63 61    le...ld bc,2: ca
023650:  6C 6C 20 26 42 42 42 37 09 09 09 3B 50 72 69 6E    ll &BBB7...;Prin
023660:  74 20 22 66 69 6E 69 73 68 65 64 22 20 6D 65 73    t "finished" mes
023670:  73 61 67 65 0D 0A 09 3A 20 63 61 6C 6C 20 26 42    sage...: call &B
023680:  42 36 43 09 09 09 09 3B 20 7C 0D 0A 09 3A 20 6C    B6C....; |...: l
023690:  64 20 68 6C 2C 66 69 6E 31 74 78 20 3A 20 63 61    d hl,fin1tx : ca
0236A0:  6C 6C 20 73 74 72 69 6E 67 09 09 3B 20 7C 0D 0A    ll string..; |..
0236B0:  09 3A 20 6C 64 20 68 6C 2C 28 77 6F 72 64 73 29    .: ld hl,(words)
0236C0:  3A 20 63 61 6C 6C 20 70 72 5F 68 6C 09 09 3B 20    : call pr_hl..; 
0236D0:  7C 0D 0A 09 3A 20 6C 64 20 68 6C 2C 66 69 6E 32    |...: ld hl,fin2
0236E0:  74 78 20 3A 20 63 61 6C 6C 20 73 74 72 69 6E 67    tx : call string
0236F0:  09 09 3B 20 7C 0D 0A 09 6C 64 20 62 63 2C 32 3A    ..; |...ld bc,2:
023700:  20 6F 66 20 6C 65 74 74 65 72 0D 0A 2E 63 6F 6E     of letter...con
023710:  5F 72 77 09 64 65 63 20 68 6C 09 09 09 09 09 3B    _rw.dec hl.....;
023720:  4D 6F 76 65 20 62 61 63 6B 20 70 61 73 74 20 68    Move back past h
023730:  69 67 68 20 62 79 74 65 0D 0A 2E 63 6F 6E 5F 72    igh byte...con_r
023740:  6C 09 64 65 63 20 68 6C 3A 20 63 61 6C 6C 20 6C    l.dec hl: call l
023750:  64 61 68 6C 09 09 09 3B 46 69 6E 64 20 73 74 61    dahl...;Find sta
023760:  72 74 20 6F 66 20 77 6F 72 64 0D 0A 09 62 69 74    rt of word...bit
023770:  20 37 2C 61 3A 20 6A 72 20 7A 2C 63 6F 6E 5F 72     7,a: jr z,con_r
023780:  6C 3A 20 69 6E 63 20 68 6C 3A 20 72 65 74 09 3B    l: inc hl: ret.;
023790:  20 7C 0D 0A 0D 0A 09 3B 2D 2D 2D 20 73 75 62 72     |.....;--- subr
0237A0:  09 4D 6F 76 65 20 28 70 72 69 6E 74 69 6E 67 29    .Move (printing)
0237B0:  20 66 72 6F 6D 20 48 4C 20 74 6F 20 2E 6E 65 77     from HL to .new
0237C0:  77 72 64 2C 20 70 72 65 73 65 72 76 69 6E 67 20    wrd, preserving 
0237D0:  63 61 73 65 0D 0A 0D 0A 2E 6E 65 77 09 6C 64 20    case.....new.ld 
0237E0:  69 78 2C 6E 65 77 77 72 64 0D 0A 09 6C 64 20 61    ix,newwrd...ld a
0237F0:  2C 28 77 6F 72 64 29 3A 20 6C 64 20 63 2C 61 09    ,(word): ld c,a.
023800:  09 09 09 09 3B 49 6E 69 74 69 61 6C 20 75 2F 63    ....;Initial u/c
023810:  3F 0D 0A 09 63 61 6C 6C 20 75 63 61 73 65 20 3A    ?...call ucase :
023820:  20 63 70 20 63 3A 20 6A 72 20 6E 7A 2C 69 6E 69     cp c: jr nz,ini
023830:  5F 6C 63 09 09 09 09 3B 20 7C 0D 0A 09 63 61 6C    _lc....; |...cal
023840:  6C 20 69 6E 69 74 20 20 3A 20 6A 72 20 69 6E 69    l init  : jr ini
023850:  5F 72 73 09 09 09 09 09 3B 59 65 73 0D 0A 2E 69    _rs.....;Yes...i
023860:  6E 69 5F 6C 63 09 63 61 6C 6C 20 69 6E 69 74 20    ni_lc.call init 
023870:  20 3A 20 63 61 6C 6C 20 6C 63 61 73 65 09 09 09     : call lcase...
023880:  09 09 3B 4E 6F 0D 0A 2E 69 6E 69 5F 72 73 09 6C    ..;No...ini_rs.l
023890:  64 20 28 69 78 29 2C 61 20 20 3A 20 63 61 6C 6C    d (ix),a  : call
0238A0:  20 26 42 42 35 41 3A 20 69 6E 63 20 69 78 09 09     &BB5A: inc ix..
0238B0:  09 09 3B 50 6C 61 63 65 2F 70 72 69 6E 74 0D 0A    ..;Place/print..
0238C0:  0D 0A 09 6C 64 20 61 2C 28 77 6F 72 64 2B 31 29    ...ld a,(word+1)
0238D0:  3A 20 63 61 6C 6C 20 75 63 61 73 65 09 09 09 09    : call ucase....
0238E0:  3B 52 65 73 74 20 75 2F 63 3F 0D 0A 09 63 70 20    ;Rest u/c?...cp 
0238F0:  28 69 78 29 20 20 3A 20 6A 72 20 6E 7A 2C 6E 65    (ix)  : jr nz,ne
023900:  20 63 61 6C 6C 20 26 42 42 42 37 09 09 09 3B 20     call &BBB7...; 
023910:  7C 0D 0A 09 6A 70 20 70 61 75 73 65 0D 0A 0D 0A    |...jp pause....
023920:  09 3B 2D 2D 2D 20 73 75 62 73 09 49 73 20 61 20    .;--- subs.Is a 
023930:  63 68 61 72 61 63 74 65 72 20 41 53 43 49 49 3F    character ASCII?
023940:  20 28 43 20 69 66 20 79 65 73 2C 20 4E 43 20 69     (C if yes, NC i
023950:  66 20 6E 6F 74 29 0D 0A 0D 0A 2E 61 73 63 61 09    f not).....asca.
023960:  63 70 20 22 27 22 3A 20 63 63 66 3A 20 72 65 74    cp "'": ccf: ret
023970:  20 7A 0D 0A 2E 61 73 63 09 63 70 20 22 41 22 3A     z...asc.cp "A":
023980:  20 6A 72 20 63 2C 6E 6F 74 61 73 63 3A 20 63 70     jr c,notasc: cp
023990:  20 22 5B 22 3A 20 72 65 74 20 63 0D 0A 09 63 70     "[": ret c...cp
0239A0:  20 22 61 22 3A 20 6A 72 20 63 2C 6E 6F 74 61 73     "a": jr c,notas
0239B0:  63 3A 20 63 70 20 22 7B 22 3A 20 72 65 74 20 63    c: cp "{": ret c
0239C0:  0D 0A 2E 6E 6F 74 61 73 63 09 6F 72 20 61 3A 20    ...notasc.or a: 
0239D0:  72 65 74 0D 0A 0D 0A 09 3B 2D 2D 2D 20 73 75 62    ret.....;--- sub
0239E0:  73 09 44 69 73 70 6C 61 79 20 63 68 61 72 61 63    s.Display charac
0239F0:  74 65 72 20 6F 6E 20 73 63 72 65 65 6E 0D 0A 0D    ter on screen...
023A00:  0A 2E 64 69 73 70 09 70 75 73 68 20 61 66 3A 20    ..disp.push af: 
023A10:  6C 64 20 62 63 2C 31 3A 20 63 61 6C 6C 20 26 42    ld bc,1: call &B
023A20:  42 42 37 3A 20 70 6F 70 20 61 66 0D 0A 09 63 70    BB7: pop af...cp
023A30:  20 26 38 41 20 3A 20 63 61 6C 6C 20 7A 2C 64 69     &8A : call z,di
023A40:  73 70 6C 66 0D 0A 09 63 70 20 26 39 30 20 3A 20    splf...cp &90 : 
023A50:  63 61 6C 6C 20 7A 2C 64 69 73 70 73 70 0D 0A 09    call z,dispsp...
023A60:  63 70 20 31 30 20 20 3A 20 6A 72 20 20 20 7A 2C    cp 10  : jr   z,
023A70:  64 69 73 70 64 6F 0D 0A 09 63 70 20 31 33 20 20    dispdo...cp 13  
023A80:  3A 20 6A 72 20 20 20 7A 2C 64 69 73 70 64 6F 0D    : jr   z,dispdo.
023A90:  0A 09 63 70 20 33 32 20 20 3A 20 6A 72 20 20 20    ..cp 32  : jr   
023AA0:  63 2C 64 69 73 70 71 74 0D 0A 09 63 70 20 31 32    c,dispqt...cp 12
023AB0:  37 20 3A 20 6A 72 20 20 6E 63 2C 64 69 73 70 71    7 : jr  nc,dispq
023AC0:  74 0D 0A 2E 64 69 73 70 64 6F 09 63 61 6C 6C 20    t...dispdo.call 
023AD0:  26 42 42 35 41 0D 0A 2E 64 69 73 70 71 74 09 6C    &BB5A...dispqt.l
023AE0:  64 20 62 63 2C 31 3A 20 6A 70 20 26 42 42 42 37    d bc,1: jp &BBB7
023AF0:  0D 0A 2E 64 69 73 70 6C 66 09 6C 64 20 61 2C 31    ...displf.ld a,1
023B00:  54 72 61 63 6B 2D 49 6E 66 6F 0D 0A 00 00 00 00    Track-Info......
023B10:  1E 00 01 00 02 09 4E E5 1E 00 C6 02 00 00 00 02    ......N.........
023B20:  1E 00 C2 02 00 00 00 02 1E 00 C7 02 00 00 00 02    ................
023B30:  1E 00 C3 02 00 00 00 02 1E 00 C8 02 00 00 00 02    ................
023B40:  1E 00 C4 02 00 00 00 02 1E 00 C9 02 00 00 00 02    ................
023B50:  1E 00 C5 02 00 00 00 02 1E 00 C1 02 00 00 00 02    ................
023B60:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
023B70:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
023B80:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
023B90:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
023BA0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
023BB0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
023BC0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
023BD0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
023BE0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
023BF0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
023C00:  64 5F 6B 65 6E 0D 0A 09 6C 64 20 61 2C 68 3A 20    d_ken...ld a,h: 
023C10:  61 64 64 20 31 39 3A 20 6C 64 20 68 2C 61 3A 20    add 19: ld h,a: 
023C20:  69 6E 63 20 69 78 3A 20 69 6E 63 20 69 78 3A 20    inc ix: inc ix: 
023C30:  6A 72 20 65 64 5F 6B 65 6E 0D 0A 0D 0A 0D 0A 09    jr ed_ken.......
023C40:  3B 2B 2B 2B 20 53 55 42 52 09 50 72 69 6E 74 20    ;+++ SUBR.Print 
023C50:  73 63 72 65 65 6E 20 28 73 74 61 72 74 69 6E 67    screen (starting
023C60:  20 61 74 20 48 4C 29 0D 0A 0D 0A 2E 65 64 5F 73     at HL).....ed_s
023C70:  63 72 09 70 75 73 68 20 68 6C 09 09 09 09 09 09    cr.push hl......
023C80:  3B 43 6C 65 61 72 20 74 61 62 6C 65 0D 0A 09 20    ;Clear table... 
023C90:  6C 64 20 68 6C 2C 65 64 5F 74 61 62 20 20 3A 20    ld hl,ed_tab  : 
023CA0:  6C 64 20 28 68 6C 29 2C 30 09 09 09 3B 20 7C 0D    ld (hl),0...; |.
023CB0:  0A 09 20 6C 64 20 64 65 2C 65 64 5F 74 61 62 2B    .. ld de,ed_tab+
023CC0:  31 3A 20 6C 64 20 62 63 2C 35 35 3A 20 6C 64 69    1: ld bc,55: ldi
023CD0:  72 09 09 09 3B 20 7C 0D 0A 09 20 6C 64 20 62 63    r...; |... ld bc
023CE0:  2C 31 3A 20 63 61 6C 6C 20 26 42 42 42 37 3A 20    ,1: call &BBB7: 
023CF0:  63 61 6C 6C 20 26 42 42 36 43 09 09 3B 20 7C 20    call &BB6C..; | 
023D00:  73 65 6C 65 63 74 20 77 69 6E 64 6F 77 20 23 31    select window #1
023D10:  0D 0A 09 70 6F 70 20 68 6C 09 09 09 09 09 09 3B    ...pop hl......;
023D20:  20 7C 0D 0A 09 6C 64 20 69 78 2C 65 64 5F 74 61     |...ld ix,ed_ta
023D30:  62 3A 20 6C 64 20 62 2C 32 38 0D 0A 0D 0A 2E 65    b: ld b,28.....e
023D40:  64 5F 73 6C 70 09 6C 64 20 64 65 2C 28 75 73 5F    d_slp.ld de,(us_
023D50:  74 6F 70 29 09 09 09 09 09 3B 41 72 65 20 77 65    top).....;Are we
023D60:  20 61 74 20 74 68 65 20 65 6E 64 3F 0D 0A 09 70     at the end?...p
023D70:  75 73 68 20 68 6C 3A 20 6F 72 20 61 3A 20 73 62    ush hl: or a: sb
023D80:  63 20 68 6C 2C 64 65 3A 20 70 6F 70 20 68 6C 3A    c hl,de: pop hl:
023D90:  20 6A 72 20 7A 2C 65 64 5F 72 65 74 09 3B 20 7C     jr z,ed_ret.; |
023DA0:  20 72 65 74 75 72 6E 20 69 66 20 73 6F 0D 0A 09     return if so...
023DB0:  6C 64 20 28 69 78 29 2C 6C 3A 20 69 6E 63 20 69    ld (ix),l: inc i
023DC0:  78 09 09 09 09 3B 45 6C 73 65 20 73 74 6F 72 65    x....;Else store
023DD0:  20 69 6E 20 74 61 62 6C 65 0D 0A 09 6C 64 20 28     in table...ld (
023DE0:  69 78 29 2C 68 3A 20 69 6E 63 20 69 78 09 09 09    ix),h: inc ix...
023DF0:  09 3B 20 7C 0D 0A 09 63 61 6C 6C 20 73 74 72 37    .; |...call str7
023E00:  20 20 20 20 20 20 20 20 09 09 3B 44 6F 20 66 6F            ..;Do fo
023E10:  72 20 32 37 20 77 6F 72 64 73 0D 0A 0D 0A 2E 65    r 27 words.....e
023E20:  64 5F 72 64 09 70 75 73 68 20 68 6C 3A 20 6C 64    d_rd.push hl: ld
023E30:  20 62 63 2C 32 3A 20 63 61 6C 6C 20 26 42 42 42     bc,2: call &BBB
023E40:  37 3A 20 70 6F 70 20 68 6C 3A 20 6A 70 20 65 64    7: pop hl: jp ed
023E50:  5F 64 6F 73 09 3B 52 65 64 6F 20 6C 69 73 74 0D    _dos.;Redo list.
023E60:  0A 0D 0A 09 3B 2D 2D 2D 20 72 6F 75 74 09 41 64    ....;--- rout.Ad
023E70:  64 20 77 6F 72 64 0D 0A 0D 0A 2E 65 64 5F 61 64    d word.....ed_ad
023E80:  64 09 6C 64 20 61 2C 28 75 73 5F 74 6F 70 2B 31    d.ld a,(us_top+1
023E90:  29 3A 20 63 70 20 26 37 46 3A 20 6A 70 20 7A 2C    ): cp &7F: jp z,
023EA0:  65 64 5F 6B 6C 70 09 3B 44 6F 6E 27 74 20 64 6F    ed_klp.;Don't do
023EB0:  20 69 74 20 69 66 20 64 69 63 74 69 6F 6E 61 72     it if dictionar
023EC0:  79 20 66 75 6C 6C 0D 0A 09 70 6F 70 20 68 6C 3A    y full...pop hl:
023ED0:  20 63 61 6C 6C 20 26 42 42 36 43 0D 0A 09 6C 64     call &BB6C...ld
023EE0:  20 68 6C 2C 61 64 64 5F 74 78 3A 20 63 61 6C 6C     hl,add_tx: call
023EF0:  20 73 74 72 69 6E 67 0D 0A 09 6C 64 20 69 78 2C     string...ld ix,
023F00:  69 6E 70 62 75 66 3A 20 63 61 6C 6C 20 69 6E 70    inpbuf: call inp
023F10:  75 74 09 09 3B 49 6E 70 75 74 0D 0A 09 6A 70 20    ut..;Input...jp 
023F20:  63 2C 65 64 5F 61 65 78 20 3A 20 6C 64 20 61 2C    c,ed_aex : ld a,
023F30:  62 3A 20 6F 72 20 61 09 09 3B 49 66 20 45 53 43    b: or a..;If ESC
023F40:  2C 20 71 75 69 74 0D 0A 09 6A 70 20 7A 2C 65 64    , quit...jp z,ed
023F50:  5F 61 65 78 09 09 09 09 3B 49 66 20 73 74 72 69    _aex....;If stri
023F60:  6E 67 20 65 6D 70 74 79 2C 20 71 75 69 74 0D 0A    ng empty, quit..
023F70:  0D 0A 09 6C 64 20 69 78 2C 69 6E 70 62 75 66 3A    ...ld ix,inpbuf:
023F80:  20 6C 64 20 68 6C 2C 77 6F 72 64 09 09 3B 43 6F     ld hl,word..;Co
023F90:  70 79 20 77 6F 72 64 20 66 72 6F 6D 20 69 6E 70    py word from inp
023FA0:  75 74 20 62 75 66 66 65 72 0D 0A 2E 65 64 5F 74    ut buffer...ed_t
023FB0:  74 72 09 6C 64 20 61 2C 28 69 78 29 3A 20 69 6E    tr.ld a,(ix): in
023FC0:  63 20 69 78 09 09 09 3B 20 7C 0D 0A 09 6C 64 20    c ix...; |...ld 
023FD0:  28 68 6C 29 2C 61 3A 20 69 6E 63 20 68 6C 3A 20    (hl),a: inc hl: 
023FE0:  64 6A 6E 7A 20 65 64 5F 74 74 72 09 09 3B 20 7C    djnz ed_ttr..; |
023FF0:  0D 0A 09 64 65 63 20 68 6C 3A 20 73 65 74 20 37    ...dec hl: set 7
024000:  31 36 3A 20 63 61 6C 6C 20 65 64 74 61 62 75 09    16: call edtabu.
024010:  09 09 3B 50 72 69 6E 74 0D 0A 09 64 6A 6E 7A 20    ..;Print...djnz 
024020:  65 64 5F 73 6C 70 09 09 09 09 09 3B 2E 2E 2E 61    ed_slp.....;...a
024030:  6E 64 20 6C 6F 6F 70 0D 0A 2E 65 64 5F 72 65 74    nd loop...ed_ret
024040:  09 6C 64 20 62 63 2C 31 3A 20 6A 70 20 26 42 42    .ld bc,1: jp &BB
024050:  42 37 09 09 09 09 3B 44 65 73 65 6C 65 63 74 20    B7....;Deselect 
024060:  23 31 20 61 6E 64 20 72 65 74 75 72 6E 0D 0A 0D    #1 and return...
024070:  0A 2E 65 64 5F 74 61 62 09 64 73 20 35 36 09 09    ..ed_tab.ds 56..
024080:  09 09 09 09 3B 51 75 69 63 6B 20 72 65 66 65 72    ....;Quick refer
024090:  65 6E 63 65 20 74 61 62 6C 65 0D 0A 0D 0A 2E 65    ence table.....e
0240A0:  64 74 61 62 75 09 70 75 73 68 20 68 6C 3A 20 63    dtabu.push hl: c
0240B0:  61 6C 6C 20 26 42 42 37 38 3A 20 6C 64 20 63 2C    all &BB78: ld c,
0240C0:  68 3A 20 70 6F 70 20 68 6C 09 09 3B 54 61 62 75    h: pop hl..;Tabu
0240D0:  6C 61 74 65 20 74 6F 20 6E 65 78 74 20 70 6C 61    late to next pla
0240E0:  63 65 0D 0A 09 6C 64 20 61 2C 31 39 3A 20 63 70    ce...ld a,19: cp
0240F0:  20 63 3A 20 6A 72 20 6E 63 2C 65 64 74 61 62 64     c: jr nc,edtabd
024100:  09 09 09 3B 20 7C 0D 0A 09 6C 64 20 61 2C 33 38    ...; |...ld a,38
024110:  3A 20 63 70 20 63 3A 20 6A 72 20 6E 63 2C 65 64    : cp c: jr nc,ed
024120:  74 61 62 64 09 09 09 3B 20 7C 0D 0A 09 6C 64 20    tabd...; |...ld 
024130:  61 2C 35 37 3A 20 63 70 20 63 3A 20 6A 72 20 6E    a,57: cp c: jr n
024140:  63 2C 65 64 74 61 62 64 09 09 09 3B 20 7C 0D 0A    c,edtabd...; |..
024150:  09 6C 64 20 61 2C 31 30 3A 20 63 61 6C 6C 20 26    .ld a,10: call &
024160:  42 42 35 41 09 09 09 09 3B 4E 65 78 74 20 72 6F    BB5A....;Next ro
024170:  77 20 69 66 20 61 74 20 65 6E 64 0D 0A 09 6C 64    w if at end...ld
024180:  20 61 2C 31 33 3A 20 6A 70 20 20 20 26 42 42 35     a,13: jp   &BB5
024190:  41 09 09 09 09 3B 20 7C 0D 0A 0D 0A 2E 65 64 74    A....; |.....edt
0241A0:  61 62 64 09 70 75 73 68 20 61 66 3A 20 6C 64 20    abd.push af: ld 
0241B0:  61 2C 39 3A 20 63 61 6C 6C 20 26 42 42 35 41 3A    a,9: call &BB5A:
0241C0:  20 70 6F 70 20 61 66 09 09 3B 41 63 74 75 61 6C     pop af..;Actual
0241D0:  20 74 61 62 20 72 6F 75 74 69 6E 65 0D 0A 09 69     tab routine...i
0241E0:  6E 63 20 63 3A 20 63 70 20 63 3A 20 6A 72 20 6E    nc c: cp c: jr n
0241F0:  7A 2C 65 64 74 61 62 64 3A 20 72 65 74 09 09 09    z,edtabd: ret...
024200:  2C 28 68 6C 29 09 09 09 3B 20 7C 20 73 65 74 20    ,(hl)...; | set 
024210:  68 69 67 68 20 62 69 74 0D 0A 09 63 61 6C 6C 20    high bit...call 
024220:  63 68 65 63 6B 3A 20 6C 64 20 62 63 2C 26 37 46    check: ld bc,&7F
024230:  43 37 3A 20 6F 75 74 20 28 63 29 2C 63 09 3B 41    C7: out (c),c.;A
024240:  6C 72 65 61 64 79 20 69 6E 20 74 68 65 20 64 69    lready in the di
024250:  63 74 69 6F 6E 61 72 79 3F 0D 0A 09 6A 70 20 63    ctionary?...jp c
024260:  2C 65 64 5F 61 65 78 3A 20 6C 64 20 69 78 2C 28    ,ed_aex: ld ix,(
024270:  75 73 5F 74 6F 70 29 3A 20 63 61 6C 6C 20 63 64    us_top): call cd
024280:  69 63 74 09 3B 41 6C 72 65 61 64 79 20 69 6E 20    ict.;Already in 
024290:  75 73 65 72 20 64 69 63 74 69 6F 6E 61 72 79 3F    user dictionary?
0242A0:  0D 0A 09 6A 70 20 63 2C 65 64 5F 61 65 78 3A 20    ...jp c,ed_aex: 
0242B0:  6C 64 20 68 6C 2C 28 75 73 5F 74 6F 70 29 3A 20    ld hl,(us_top): 
0242C0:  63 61 6C 6C 20 61 64 64 77 72 64 3B 4E 6F 2C 20    call addwrd;No, 
0242D0:  73 6F 20 61 64 64 20 77 6F 72 64 0D 0A 09 6C 64    so add word...ld
0242E0:  20 28 75 73 5F 74 6F 70 29 2C 68 6C 09 09 09 09     (us_top),hl....
0242F0:  3B 20 7C 0D 0A 2E 65 64 5F 61 65 78 09 6C 64 20    ; |...ed_aex.ld 
024300:  68 6C 2C 28 65 64 5F 74 61 62 29 3A 20 6A 70 20    hl,(ed_tab): jp 
024310:  65 64 5F 72 64 0D 0A 0D 0A 09 3B 2D 2D 2D 20 72    ed_rd.....;--- r
024320:  6F 75 74 09 44 65 6C 65 74 65 20 77 6F 72 64 0D    out.Delete word.
024330:  0A 0D 0A 2E 65 64 5F 64 65 6C 09 6C 64 20 61 2C    ....ed_del.ld a,
024340:  28 69 78 29 3A 20 6F 72 20 28 69 78 2B 31 29 3A    (ix): or (ix+1):
024350:  20 6A 70 20 7A 2C 65 64 5F 6B 6C 70 09 3B 44 6F     jp z,ed_klp.;Do
024360:  6E 27 74 20 64 6F 20 69 74 20 69 66 20 6E 6F 74    n't do it if not
024370:  20 6F 6E 20 77 6F 72 64 0D 0A 09 70 6F 70 20 68     on word...pop h
024380:  6C 3A 20 6C 64 20 6C 2C 28 69 78 29 3A 20 6C 64    l: ld l,(ix): ld
024390:  20 68 2C 28 69 78 2B 31 29 09 09 3B 46 69 6E 64     h,(ix+1)..;Find
0243A0:  20 61 64 64 72 65 73 73 20 6F 66 20 77 6F 72 64     address of word
0243B0:  0D 0A 09 6C 64 20 65 2C 6C 3A 20 6C 64 20 64 2C    ...ld e,l: ld d,
0243C0:  68 0D 0A 2E 65 64 5F 64 6C 74 09 6C 64 20 61 2C    h...ed_dlt.ld a,
0243D0:  28 64 65 29 3A 20 69 6E 63 20 64 65 3A 20 61 6E    (de): inc de: an
0243E0:  64 20 31 32 38 3A 20 6A 72 20 7A 2C 65 64 5F 64    d 128: jr z,ed_d
0243F0:  6C 74 09 3B 46 69 6E 64 20 61 64 64 72 65 73 73    lt.;Find address
024400:  3B 20 7C 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D    ; |.............
024410:  0A 0D 0A 09 3B 2A 2A 2A 20 52 4F 55 54 09 4C 6F    ....;*** ROUT.Lo
024420:  61 64 20 75 73 65 72 20 64 69 63 74 69 6F 6E 61    ad user dictiona
024430:  72 79 0D 0A 0D 0A 2E 75 5F 6C 6F 61 64 09 63 61    ry.....u_load.ca
024440:  6C 6C 20 63 6C 65 61 72 0D 0A 09 6C 64 20 68 6C    ll clear...ld hl
024450:  2C 63 66 6E 5F 74 78 3A 20 63 61 6C 6C 20 73 74    ,cfn_tx: call st
024460:  72 69 6E 67 3A 20 6C 64 20 69 78 2C 73 66 6E 20    ring: ld ix,sfn 
024470:  20 20 3A 20 63 61 6C 6C 20 69 6E 70 75 74 3A 20      : call input: 
024480:  6A 70 20 63 20 2C 6D 61 69 6E 0D 0A 09 09 09 09    jp c ,main......
024490:  20 20 20 6C 64 20 64 65 2C 69 6E 62 75 66 66 3A       ld de,inbuff:
0244A0:  20 63 61 6C 6C 20 26 42 43 37 37 3A 20 6A 70 20     call &BC77: jp 
0244B0:  6E 63 2C 70 61 75 73 65 0D 0A 09 63 70 20 33 3A    nc,pause...cp 3:
0244C0:  20 6A 70 20 6E 7A 2C 6E 74 64 69 63 74 09 09 09     jp nz,ntdict...
0244D0:  09 3B 44 69 63 74 69 6F 6E 61 72 79 20 66 69 6C    .;Dictionary fil
0244E0:  65 3F 0D 0A 09 73 65 74 20 36 2C 62 3A 20 6C 64    e?...set 6,b: ld
0244F0:  20 28 75 73 5F 74 6F 70 29 2C 62 63 09 09 09 09     (us_top),bc....
024500:  3B 53 65 74 20 6C 65 6E 67 74 68 0D 0A 09 6C 64    ;Set length...ld
024510:  20 62 63 2C 26 37 46 43 37 3A 20 6F 75 74 20 28     bc,&7FC7: out (
024520:  63 29 2C 63 09 09 09 09 3B 52 65 61 64 20 66 69    c),c....;Read fi
024530:  6C 65 20 69 6E 0D 0A 09 6C 64 20 68 6C 2C 26 34    le in...ld hl,&4
024540:  30 30 30 3A 20 63 61 6C 6C 20 26 42 43 38 33 09    000: call &BC83.
024550:  09 09 09 3B 20 7C 0D 0A 09 6C 64 20 62 63 2C 26    ...; |...ld bc,&
024560:  37 46 43 30 3A 20 6F 75 74 20 28 63 29 2C 63 09    7FC0: out (c),c.
024570:  09 09 09 3B 20 7C 0D 0A 09 70 75 73 68 20 61 66    ...; |...push af
024580:  3A 20 63 61 6C 6C 20 26 42 43 37 41 3A 20 70 6F    : call &BC7A: po
024590:  70 20 61 66 09 09 09 3B 20 7C 0D 0A 09 6A 70 20    p af...; |...jp 
0245A0:  6E 63 2C 70 61 75 73 65 3A 20 6A 70 20 6D 61 69    nc,pause: jp mai
0245B0:  6E 0D 0A 0D 0A 2E 6E 74 64 69 63 74 09 63 61 6C    n.....ntdict.cal
0245C0:  6C 20 63 6C 65 61 72 20 3A 20 6C 64 20 68 6C 2C    l clear : ld hl,
0245D0:  6E 74 64 5F 74 78 09 09 09 3B 22 57 72 6F 6E 67    ntd_tx...;"Wrong
0245E0:  20 66 69 6C 65 74 79 70 65 22 20 65 72 72 6F 72     filetype" error
0245F0:  0D 0A 09 63 61 6C 6C 20 73 74 72 69 6E 67 3A 20    ...call string: 
024600:  20 6F 66 20 6E 65 78 74 20 77 6F 72 64 0D 0A 09     of next word...
024610:  6C 64 20 62 63 2C 28 75 73 5F 74 6F 70 29 0D 0A    ld bc,(us_top)..
024620:  0D 0A 2E 65 64 5F 6C 70 09 6C 64 20 61 2C 64 3A    ...ed_lp.ld a,d:
024630:  20 63 70 20 62 3A 20 6A 72 20 6E 7A 2C 65 64 64     cp b: jr nz,edd
024640:  6E 6F 74 09 09 3B 41 72 65 20 77 65 20 61 74 20    not..;Are we at 
024650:  74 68 65 20 65 6E 64 20 79 65 74 3F 0D 0A 09 6C    the end yet?...l
024660:  64 20 61 2C 65 3A 20 63 70 20 63 3A 20 6A 72 20    d a,e: cp c: jr 
024670:  7A 20 2C 65 64 64 65 6E 64 09 09 3B 20 7C 0D 0A    z ,eddend..; |..
024680:  2E 65 64 64 6E 6F 74 09 6C 64 20 61 2C 28 64 65    .eddnot.ld a,(de
024690:  29 3A 20 69 6E 63 20 64 65 09 09 09 3B 4E 6F 2C    ): inc de...;No,
0246A0:  20 73 6F 20 63 6F 70 79 20 62 79 74 65 20 61 6E     so copy byte an
0246B0:  64 20 6C 6F 6F 70 0D 0A 09 6C 64 20 28 68 6C 29    d loop...ld (hl)
0246C0:  2C 61 3A 20 69 6E 63 20 68 6C 3A 20 6A 72 20 65    ,a: inc hl: jr e
0246D0:  64 5F 6C 70 09 09 3B 20 7C 0D 0A 2E 65 64 64 65    d_lp..; |...edde
0246E0:  6E 64 09 6C 64 20 28 75 73 5F 74 6F 70 29 2C 68    nd.ld (us_top),h
0246F0:  6C 3A 20 6A 70 20 65 64 5F 61 65 78 09 09 3B 53    l: jp ed_aex..;S
024700:  65 74 20 6E 65 77 20 22 74 6F 70 22 20 61 6E 64    et new "top" and
024710:  20 72 65 73 74 61 72 74 0D 0A 0D 0A 0D 0A 09 3B     restart.......;
024720:  2B 2B 2B 20 53 55 42 52 09 47 65 74 20 6B 65 79    +++ SUBR.Get key
024730:  2C 20 63 6F 6E 74 72 6F 6C 20 63 75 72 73 6F 72    , control cursor
024740:  20 6D 6F 76 65 6D 65 6E 74 0D 0A 0D 0A 2E 65 64     movement.....ed
024750:  5F 6B 65 79 09 70 75 73 68 20 68 6C 3A 20 6C 64    _key.push hl: ld
024760:  20 62 63 2C 31 3A 20 63 61 6C 6C 20 26 42 42 42     bc,1: call &BBB
024770:  37 3A 20 70 6F 70 20 68 6C 0D 0A 2E 65 64 5F 6B    7: pop hl...ed_k
024780:  65 6E 09 70 75 73 68 20 68 6C 3A 20 63 61 6C 6C    en.push hl: call
024790:  20 26 42 42 37 35 3A 20 70 6F 70 20 68 6C 3A 20     &BB75: pop hl: 
0247A0:  6C 64 20 61 2C 32 34 32 3A 20 63 61 6C 6C 20 26    ld a,242: call &
0247B0:  42 42 35 41 3A 20 63 61 6C 6C 20 26 42 42 30 36    BB5A: call &BB06
0247C0:  3A 20 70 75 73 68 20 61 66 0D 0A 09 70 75 73 68    : push af...push
0247D0:  20 68 6C 3A 20 63 61 6C 6C 20 26 42 42 37 35 3A     hl: call &BB75:
0247E0:  20 70 6F 70 20 68 6C 3A 20 6C 64 20 61 2C 33 32     pop hl: ld a,32
0247F0:  20 3A 20 63 61 6C 6C 20 26 42 42 35 41 3A 20 09     : call &BB5A: .
024800:  6A 70 20 70 61 75 73 65 09 09 09 09 3B 20 7C 0D    jp pause....; |.
024810:  0A 0D 0A 0D 0A 09 3B 2A 2A 2A 20 52 4F 55 54 09    ......;*** ROUT.
024820:  53 61 76 65 20 75 73 65 72 20 64 69 63 74 69 6F    Save user dictio
024830:  6E 61 72 79 0D 0A 0D 0A 2E 75 5F 73 61 76 65 09    nary.....u_save.
024840:  6C 64 20 68 6C 2C 28 75 73 5F 74 6F 70 29 20 3A    ld hl,(us_top) :
024850:  20 6C 64 20 64 65 2C 26 34 30 30 30 09 09 09 3B     ld de,&4000...;
024860:  44 6F 6E 27 74 20 73 61 76 65 20 69 66 20 6E 6F    Don't save if no
024870:  74 20 74 68 65 72 65 0D 0A 09 6F 72 20 61 3A 20    t there...or a: 
024880:  73 62 63 20 68 6C 2C 64 65 3A 20 6A 70 20 7A 2C    sbc hl,de: jp z,
024890:  6D 61 69 6E 09 09 09 3B 20 7C 0D 0A 0D 0A 09 63    main...; |.....c
0248A0:  61 6C 6C 20 63 6C 65 61 72 0D 0A 09 6C 64 20 68    all clear...ld h
0248B0:  6C 2C 63 66 6E 5F 74 78 3A 20 63 61 6C 6C 20 73    l,cfn_tx: call s
0248C0:  74 72 69 6E 67 3A 20 6C 64 20 69 78 2C 73 66 6E    tring: ld ix,sfn
0248D0:  20 20 20 3A 20 63 61 6C 6C 20 69 6E 70 75 74 3A       : call input:
0248E0:  20 6A 70 20 63 20 2C 6D 61 69 6E 0D 0A 09 09 09     jp c ,main.....
0248F0:  09 20 20 20 6C 64 20 64 65 2C 69 6E 62 75 66 66    .   ld de,inbuff
024900:  3A 20 63 61 6C 6C 20 26 42 43 38 43 3A 20 6A 70    : call &BC8C: jp
024910:  20 6E 63 2C 70 61 75 73 65 0D 0A 09 6C 64 20 62     nc,pause...ld b
024920:  63 2C 26 37 46 43 37 3A 20 6F 75 74 20 28 63 29    c,&7FC7: out (c)
024930:  2C 63 0D 0A 09 6C 64 20 68 6C 2C 26 34 30 30 30    ,c...ld hl,&4000
024940:  20 20 20 3A 20 6C 64 20 20 61 2C 33 09 09 09 09       : ld  a,3....
024950:  3B 57 72 69 74 65 20 66 69 6C 65 0D 0A 09 6C 64    ;Write file...ld
024960:  20 64 65 2C 28 75 73 5F 74 6F 70 29 3A 20 72 65     de,(us_top): re
024970:  73 20 36 2C 64 3A 20 63 61 6C 6C 20 26 42 43 39    s 6,d: call &BC9
024980:  38 09 09 3B 20 7C 0D 0A 09 6C 64 20 62 63 2C 26    8..; |...ld bc,&
024990:  37 46 43 30 3A 20 6F 75 74 20 28 63 29 2C 63 09    7FC0: out (c),c.
0249A0:  09 09 09 3B 20 7C 0D 0A 09 70 75 73 68 20 61 66    ...; |...push af
0249B0:  3A 20 63 61 6C 6C 20 26 42 43 38 46 3A 20 70 6F    : call &BC8F: po
0249C0:  70 20 61 66 09 09 09 3B 20 7C 0D 0A 09 6A 70 20    p af...; |...jp 
0249D0:  6E 63 2C 70 61 75 73 65 3A 20 6A 70 20 6D 61 69    nc,pause: jp mai
0249E0:  6E 0D 0A 0D 0A 0D 0A 0D 0A 09 3B 2A 2A 2A 20 52    n.........;*** R
0249F0:  4F 55 54 09 49 6E 73 74 72 75 63 74 69 6F 6E 73    OUT.Instructions
024A00:  20 20 20 20 20 20 20 70 6F 70 20 20 61 66 0D 0A           pop  af..
024A10:  09 63 70 20 32 34 30 3A 20 6A 72 20 7A 2C 65 64    .cp 240: jr z,ed
024A20:  6B 5F 75 70 3A 20 63 70 20 32 34 31 3A 20 6A 72    k_up: cp 241: jr
024A30:  20 7A 2C 65 64 6B 5F 64 6E 0D 0A 09 63 70 20 32     z,edk_dn...cp 2
024A40:  34 32 3A 20 6A 72 20 7A 2C 65 64 6B 5F 6C 74 3A    42: jr z,edk_lt:
024A50:  20 63 70 20 32 34 33 3A 20 6A 72 20 7A 2C 65 64     cp 243: jr z,ed
024A60:  6B 5F 72 74 0D 0A 09 63 61 6C 6C 20 75 63 61 73    k_rt...call ucas
024A70:  65 3A 20 70 75 73 68 20 61 66 0D 0A 09 70 75 73    e: push af...pus
024A80:  68 20 68 6C 3A 20 6C 64 20 62 63 2C 31 3A 20 63    h hl: ld bc,1: c
024A90:  61 6C 6C 20 26 42 42 42 37 3A 20 70 6F 70 20 68    all &BBB7: pop h
024AA0:  6C 0D 0A 09 70 6F 70 20 61 66 3A 20 72 65 74 0D    l...pop af: ret.
024AB0:  0A 0D 0A 2E 65 64 6B 5F 75 70 09 6C 64 20 61 2C    ....edk_up.ld a,
024AC0:  6C 3A 20 63 70 20 31 3A 20 6A 72 20 7A 2C 65 64    l: cp 1: jr z,ed
024AD0:  5F 6B 65 6E 0D 0A 09 64 65 63 20 6C 3A 20 6C 64    _ken...dec l: ld
024AE0:  20 64 65 2C 2D 38 3A 20 61 64 64 20 69 78 2C 64     de,-8: add ix,d
024AF0:  65 3A 20 6A 72 20 65 64 5F 6B 65 6E 0D 0A 2E 65    e: jr ed_ken...e
024B00:  64 6B 5F 6C 74 09 6C 64 20 61 2C 68 3A 20 63 70    dk_lt.ld a,h: cp
024B10:  20 31 37 3A 20 6A 72 20 7A 2C 65 64 5F 6B 65 6E     17: jr z,ed_ken
024B20:  0D 0A 09 73 75 62 20 31 39 3A 20 6C 64 20 68 2C    ...sub 19: ld h,
024B30:  61 3A 20 64 65 63 20 69 78 3A 20 64 65 63 20 69    a: dec ix: dec i
024B40:  78 3A 20 6A 72 20 65 64 5F 6B 65 6E 0D 0A 2E 65    x: jr ed_ken...e
024B50:  64 6B 5F 64 6E 09 6C 64 20 61 2C 6C 3A 20 63 70    dk_dn.ld a,l: cp
024B60:  20 37 20 3A 20 6A 72 20 7A 2C 65 64 5F 6B 65 6E     7 : jr z,ed_ken
024B70:  3A 20 6C 64 20 61 2C 28 69 78 2B 38 29 3A 20 6F    : ld a,(ix+8): o
024B80:  72 20 28 69 78 2B 39 29 3A 20 6A 72 20 7A 2C 65    r (ix+9): jr z,e
024B90:  64 5F 6B 65 6E 0D 0A 09 69 6E 63 20 6C 3A 20 6C    d_ken...inc l: l
024BA0:  64 20 64 65 2C 38 3A 20 61 64 64 20 69 78 2C 64    d de,8: add ix,d
024BB0:  65 3A 20 6A 72 20 65 64 5F 6B 65 6E 0D 0A 2E 65    e: jr ed_ken...e
024BC0:  64 6B 5F 72 74 09 6C 64 20 61 2C 68 3A 20 63 70    dk_rt.ld a,h: cp
024BD0:  20 37 34 3A 20 6A 72 20 7A 2C 65 64 5F 6B 65 6E     74: jr z,ed_ken
024BE0:  3A 20 6C 64 20 61 2C 28 69 78 2B 32 29 3A 20 6F    : ld a,(ix+2): o
024BF0:  72 20 28 69 78 2B 33 29 3A 20 6A 72 20 7A 2C 65    r (ix+3): jr z,e
024C00:  65 64 5F 74 61 62 2B 35 34 29 09 09 09 3B 49 73    ed_tab+54)...;Is
024C10:  20 74 68 65 72 65 20 61 20 6E 65 78 74 20 73 63     there a next sc
024C20:  72 65 65 6E 3F 0D 0A 09 6C 64 20 61 2C 64 3A 20    reen?...ld a,d: 
024C30:  6F 72 20 65 3A 20 6A 70 20 7A 2C 65 64 5F 6B 6C    or e: jp z,ed_kl
024C40:  70 09 09 3B 20 7C 0D 0A 09 70 6F 70 20 68 6C 3A    p..; |...pop hl:
024C50:  20 65 78 20 64 65 2C 68 6C 3A 20 6A 70 20 65 64     ex de,hl: jp ed
024C60:  5F 72 64 09 09 3B 59 65 73 2C 20 73 6F 20 64 6F    _rd..;Yes, so do
024C70:  20 69 74 0D 0A 0D 0A 09 3B 2D 2D 2D 20 72 6F 75     it.....;--- rou
024C80:  74 09 50 72 65 76 69 6F 75 73 20 73 63 72 65 65    t.Previous scree
024C90:  6E 0D 0A 0D 0A 2E 65 64 5F 70 72 76 09 6C 64 20    n.....ed_prv.ld 
024CA0:  61 2C 28 69 78 29 3A 20 6F 72 20 28 69 78 2B 31    a,(ix): or (ix+1
024CB0:  29 3A 20 6A 70 20 7A 2C 65 64 5F 6B 6C 70 09 3B    ): jp z,ed_klp.;
024CC0:  44 6F 6E 27 74 20 64 6F 20 69 74 20 69 66 20 6E    Don't do it if n
024CD0:  6F 74 20 6F 6E 20 77 6F 72 64 0D 0A 09 70 6F 70    ot on word...pop
024CE0:  20 68 6C 3A 20 6C 64 20 68 6C 2C 28 65 64 5F 74     hl: ld hl,(ed_t
024CF0:  61 62 29 3A 20 6C 64 20 62 2C 32 37 09 09 3B 47    ab): ld b,27..;G
024D00:  65 74 20 66 69 72 73 74 20 77 6F 72 64 20 61 64    et first word ad
024D10:  64 72 65 73 73 0D 0A 2E 65 64 5F 70 6C 70 09 6C    dress...ed_plp.l
024D20:  64 20 61 2C 68 3A 20 63 70 20 26 34 30 3A 20 6A    d a,h: cp &40: j
024D30:  72 20 6E 7A 2C 65 70 6E 6F 74 73 09 09 3B 49 73    r nz,epnots..;Is
024D40:  20 69 74 20 26 34 30 30 30 3F 0D 0A 09 6C 64 20     it &4000?...ld 
024D50:  61 2C 6C 3A 20 6F 72 20 61 20 20 3A 20 6A 70 20    a,l: or a  : jp 
024D60:  7A 20 2C 65 64 5F 72 64 09 09 3B 20 7C 20 69 66    z ,ed_rd..; | if
024D70:  20 73 6F 2C 20 72 65 64 6F 20 70 61 67 65 0D 0A     so, redo page..
024D80:  2E 65 70 6E 6F 74 73 09 64 65 63 20 68 6C 09 09    .epnots.dec hl..
024D90:  09 09 09 3B 53 6B 69 70 20 6C 61 73 74 20 68 69    ...;Skip last hi
024DA0:  67 68 20 62 79 74 65 0D 0A 2E 65 64 5F 70 73 6B    gh byte...ed_psk
024DB0:  09 64 65 63 20 68 6C 3A 20 6C 64 20 61 2C 28 68    .dec hl: ld a,(h
024DC0:  6C 29 3A 20 61 6E 64 20 31 32 38 3A 20 6A 72 20    l): and 128: jr 
024DD0:  7A 2C 65 64 5F 70 73 6B 09 3B 53 6B 69 70 20 6C    z,ed_psk.;Skip l
024DE0:  61 73 74 20 77 6F 72 64 0D 0A 09 69 6E 63 20 68    ast word...inc h
024DF0:  6C 3A 20 64 6A 6E 7A 20 65 64 5F 70 6C 70 20 20    l: djnz ed_plp  
024E00:  54 72 61 63 6B 2D 49 6E 66 6F 0D 0A 00 00 00 00    Track-Info......
024E10:  1F 00 01 00 02 09 4E E5 1F 00 C9 02 00 00 00 02    ......N.........
024E20:  1F 00 C5 02 00 00 00 02 1F 00 C1 02 00 00 00 02    ................
024E30:  1F 00 C6 02 00 00 00 02 1F 00 C2 02 00 00 00 02    ................
024E40:  1F 00 C7 02 00 00 00 02 1F 00 C3 02 00 00 00 02    ................
024E50:  1F 00 C8 02 00 00 00 02 1F 00 C4 02 00 00 00 02    ................
024E60:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
024E70:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
024E80:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
024E90:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
024EA0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
024EB0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
024EC0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
024ED0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
024EE0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
024EF0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
024F00:  70 64 65 6C 09 20 6C 64 20 61 2C 62 3A 20 6F 72    pdel. ld a,b: or
024F10:  20 61 3A 20 6A 72 20 7A 2C 69 6E 70 6B 65 79 3A     a: jr z,inpkey:
024F20:  20 64 65 63 20 69 78 3A 20 6C 64 20 28 69 78 29     dec ix: ld (ix)
024F30:  2C 30 0D 0A 09 20 6C 64 20 61 2C 38 3A 20 63 61    ,0... ld a,8: ca
024F40:  6C 6C 20 26 42 42 35 41 3A 20 6C 64 20 61 2C 31    ll &BB5A: ld a,1
024F50:  36 3A 20 63 61 6C 6C 20 26 42 42 35 41 3A 20 64    6: call &BB5A: d
024F60:  65 63 20 62 3A 20 6A 72 20 69 6E 70 6B 65 79 0D    ec b: jr inpkey.
024F70:  0A 2E 69 6E 70 65 73 63 09 70 6F 70 20 68 6C 3A    ..inpesc.pop hl:
024F80:  20 6C 64 20 28 68 6C 29 2C 30 3A 20 6C 64 20 62     ld (hl),0: ld b
024F90:  2C 30 3A 20 73 63 66 20 3A 20 72 65 74 0D 0A 2E    ,0: scf : ret...
024FA0:  69 6E 70 65 6E 74 09 70 6F 70 20 68 6C 3A 20 09    inpent.pop hl: .
024FB0:  09 20 20 20 6F 72 20 61 3A 20 72 65 74 0D 0A 0D    .   or a: ret...
024FC0:  0A 0D 0A 0D 0A 09 3B 2A 2A 2A 20 44 41 54 41 09    ......;*** DATA.
024FD0:  53 74 72 69 6E 67 73 0D 0A 0D 0A 2E 73 66 6E 5F    Strings.....sfn_
024FE0:  74 78 09 64 62 20 33 31 2C 32 34 2C 31 34 2C 22    tx.db 31,24,14,"
024FF0:  53 6F 75 72 63 65 20 66 69 6C 65 6E 61 6D 65 20    Source filename 
025000:  20 20 3A 20 22 2C 30 0D 0A 2E 64 66 6E 5F 74 78      : ",0...dfn_tx
025010:  09 64 62 20 33 31 2C 32 34 2C 31 36 2C 22 43 6F    .db 31,24,16,"Co
025020:  72 72 65 63 74 65 64 20 66 69 6C 65 6E 61 6D 65    rrected filename
025030:  3A 20 22 2C 30 0D 0A 2E 63 66 6E 5F 74 78 09 64    : ",0...cfn_tx.d
025040:  62 20 33 31 2C 32 34 2C 31 35 2C 22 44 69 63 74    b 31,24,15,"Dict
025050:  69 6F 6E 61 72 79 20 66 69 6C 65 6E 61 6D 65 3A    ionary filename:
025060:  20 22 2C 30 0D 0A 2E 66 69 6E 31 74 78 09 64 62     ",0...fin1tx.db
025070:  20 22 46 69 6E 69 73 68 65 64 20 63 68 65 63 6B     "Finished check
025080:  69 6E 67 20 64 6F 63 75 6D 65 6E 74 20 28 22 2C    ing document (",
025090:  30 0D 0A 2E 66 69 6E 32 74 78 09 64 62 20 22 20    0...fin2tx.db " 
0250A0:  77 6F 72 64 73 29 2E 20 50 72 65 73 73 20 61 6E    words). Press an
0250B0:  79 20 6B 65 79 20 74 6F 20 63 6F 6E 74 69 6E 75    y key to continu
0250C0:  65 2E 22 2C 30 0D 0A 2E 6E 6F 74 66 74 78 09 64    e.",0...notftx.d
0250D0:  62 20 22 20 6E 6F 74 20 66 6F 75 6E 64 20 69 6E    b " not found in
0250E0:  20 64 69 63 74 69 6F 6E 61 72 79 2E 22 2C 30 0D     dictionary.",0.
0250F0:  0A 2E 6F 70 74 5F 74 78 09 64 62 20 33 31 2C 31    ..opt_tx.db 31,1
025100:  6C 64 20 6C 2C 61 3A 20 6C 64 20 68 2C 30 0D 0A    ld l,a: ld h,0..
025110:  09 6C 64 20 64 65 2C 6C 65 74 74 65 72 2D 32 3A    .ld de,letter-2:
025120:  20 61 64 64 20 68 6C 2C 64 65 0D 0A 09 6C 64 20     add hl,de...ld 
025130:  65 2C 28 68 6C 29 3A 20 69 6E 63 20 68 6C 0D 0A    e,(hl): inc hl..
025140:  09 6C 64 20 64 2C 28 68 6C 29 3A 20 65 78 20 64    .ld d,(hl): ex d
025150:  65 2C 68 6C 3A 20 72 65 74 0D 0A 0D 0A 0D 0A 09    e,hl: ret.......
025160:  3B 2A 2A 2A 20 53 55 42 52 09 43 6C 65 61 72 20    ;*** SUBR.Clear 
025170:  6C 6F 77 65 72 20 73 63 72 65 65 6E 20 61 72 65    lower screen are
025180:  61 0D 0A 0D 0A 2E 63 6C 65 61 72 09 6C 64 20 68    a.....clear.ld h
025190:  6C 2C 26 30 31 30 42 3A 20 78 6F 72 20 61 0D 0A    l,&010B: xor a..
0251A0:  09 6C 64 20 64 65 2C 26 34 45 31 37 3A 20 6A 70    .ld de,&4E17: jp
0251B0:  20 26 42 43 34 34 0D 0A 0D 0A 0D 0A 09 3B 2A 2A     &BC44.......;**
0251C0:  2A 20 53 55 42 52 09 4C 44 20 41 2C 28 48 4C 29    * SUBR.LD A,(HL)
0251D0:  20 2D 20 65 78 74 72 61 20 62 61 6E 6B 73 0D 0A     - extra banks..
0251E0:  0D 0A 2E 6C 64 61 68 6C 09 70 75 73 68 20 62 63    ...ldahl.push bc
0251F0:  3A 20 70 75 73 68 20 68 6C 0D 0A 09 20 6C 64 20    : push hl... ld 
025200:  62 2C 61 3A 20 6C 64 20 61 2C 68 3A 20 61 6E 64    b,a: ld a,h: and
025210:  20 26 43 30 0D 0A 09 20 72 6C 63 61 3A 20 72 6C     &C0... rlca: rl
025220:  63 61 3A 20 61 64 64 20 26 43 34 0D 0A 09 20 6C    ca: add &C4... l
025230:  64 20 63 2C 61 0D 0A 09 20 6C 64 20 61 2C 68 3A    d c,a... ld a,h:
025240:  20 61 6E 64 20 26 33 46 3A 20 6F 72 20 26 34 30     and &3F: or &40
025250:  3A 20 6C 64 20 68 2C 61 0D 0A 09 20 6C 64 20 61    : ld h,a... ld a
025260:  2C 62 3A 20 6C 64 20 62 2C 26 37 46 0D 0A 09 20    ,b: ld b,&7F... 
025270:  6F 75 74 20 28 63 29 2C 63 3A 20 6C 64 20 61 2C    out (c),c: ld a,
025280:  28 68 6C 29 0D 0A 09 20 6C 64 20 63 2C 26 43 30    (hl)... ld c,&C0
025290:  3A 20 6F 75 74 20 28 63 29 2C 63 0D 0A 09 70 6F    : out (c),c...po
0252A0:  70 20 68 6C 3A 20 70 6F 70 20 62 63 0D 0A 09 72    p hl: pop bc...r
0252B0:  65 74 0D 0A 0D 0A 2E 6C 64 61 68 6C 69 09 63 61    et.....ldahli.ca
0252C0:  6C 6C 20 6C 64 61 68 6C 0D 0A 09 69 6E 63 20 68    ll ldahl...inc h
0252D0:  6C 3A 20 72 65 74 0D 0A 0D 0A 0D 0A 09 3B 2A 2A    l: ret.......;**
0252E0:  2A 20 53 55 42 52 09 4C 44 20 28 48 4C 29 2C 41    * SUBR.LD (HL),A
0252F0:  20 2D 20 65 78 74 72 61 20 62 61 6E 6B 73 0D 0A     - extra banks..
025300:  0D 0A 0D 0A 2E 68 65 6C 70 09 63 61 6C 6C 20 63    .....help.call c
025310:  6C 65 61 72 0D 0A 09 6C 64 20 62 63 2C 32 3A 20    lear...ld bc,2: 
025320:  63 61 6C 6C 20 26 42 42 42 37 09 09 09 09 3B 23    call &BBB7....;#
025330:  32 20 70 72 6F 6D 70 74 73 0D 0A 09 6C 64 20 68    2 prompts...ld h
025340:  6C 2C 68 65 6C 70 74 78 3A 20 63 61 6C 6C 20 73    l,helptx: call s
025350:  74 72 69 6E 67 09 09 09 3B 20 7C 0D 0A 09 6C 64    tring...; |...ld
025360:  20 62 63 2C 32 3A 20 63 61 6C 6C 20 26 42 42 42     bc,2: call &BBB
025370:  37 09 09 09 09 3B 20 7C 0D 0A 0D 0A 09 6C 64 20    7....; |.....ld 
025380:  62 63 2C 31 3A 20 63 61 6C 6C 20 26 42 42 42 37    bc,1: call &BBB7
025390:  09 09 09 09 3B 23 31 0D 0A 09 6C 64 20 64 65 2C    ....;#1...ld de,
0253A0:  26 30 32 30 43 3A 20 6C 64 20 68 6C 2C 26 34 44    &020C: ld hl,&4D
0253B0:  31 34 3A 20 63 61 6C 6C 20 26 42 42 36 36 09 09    14: call &BB66..
0253C0:  3B 20 7C 20 65 6E 6C 61 72 67 65 20 69 74 0D 0A    ; | enlarge it..
0253D0:  09 6C 64 20 68 6C 2C 26 34 30 3A 20 6C 64 20 62    .ld hl,&40: ld b
0253E0:  2C 30 0D 0A 2E 68 65 6C 70 70 64 09 6C 64 20 61    ,0...helppd.ld a
0253F0:  2C 62 3A 20 63 70 20 36 3A 20 6A 72 20 7A 2C 68    ,b: cp 6: jr z,h
025400:  65 6C 70 6B 79 09 09 09 3B 4F 6E 20 6C 61 73 74    elpky...;On last
025410:  20 73 63 72 65 65 6E 3F 0D 0A 09 70 75 73 68 20     screen?...push 
025420:  62 63 3A 20 70 75 73 68 20 68 6C 3A 20 63 61 6C    bc: push hl: cal
025430:  6C 20 26 42 42 36 43 3A 20 70 6F 70 20 68 6C 3A    l &BB6C: pop hl:
025440:  20 70 6F 70 20 62 63 09 3B 43 4C 53 0D 0A 2E 68     pop bc.;CLS...h
025450:  65 6C 70 70 72 09 6C 64 20 61 2C 28 68 6C 29 3A    elppr.ld a,(hl):
025460:  20 6F 72 20 61 3A 20 6A 72 20 7A 2C 68 65 6C 70     or a: jr z,help
025470:  70 73 09 09 09 3B 50 72 69 6E 74 20 61 20 73 63    ps...;Print a sc
025480:  72 65 65 6E 0D 0A 09 63 61 6C 6C 20 73 74 72 37    reen...call str7
025490:  09 09 09 09 09 3B 20 7C 0D 0A 09 6C 64 20 61 2C    .....; |...ld a,
0254A0:  31 30 3A 20 63 61 6C 6C 20 26 42 42 35 41 09 09    10: call &BB5A..
0254B0:  09 09 3B 20 7C 0D 0A 09 6C 64 20 61 2C 31 33 3A    ..; |...ld a,13:
0254C0:  20 63 61 6C 6C 20 26 42 42 35 41 3A 20 6A 72 20     call &BB5A: jr 
0254D0:  68 65 6C 70 70 72 09 09 09 3B 20 7C 0D 0A 2E 68    helppr...; |...h
0254E0:  65 6C 70 70 73 09 69 6E 63 20 62 3A 20 69 6E 63    elpps.inc b: inc
0254F0:  20 68 6C 09 09 09 09 09 3B 53 6B 69 70 20 30 0D     hl.....;Skip 0.
025500:  0D 0A 2E 6C 64 68 6C 61 09 70 75 73 68 20 62 63    ...ldhla.push bc
025510:  3A 20 70 75 73 68 20 68 6C 0D 0A 09 20 6C 64 20    : push hl... ld 
025520:  62 2C 61 3A 20 6C 64 20 61 2C 68 3A 20 61 6E 64    b,a: ld a,h: and
025530:  20 26 43 30 0D 0A 09 20 72 6C 63 61 3A 20 72 6C     &C0... rlca: rl
025540:  63 61 3A 20 61 64 64 20 26 43 34 0D 0A 09 20 6C    ca: add &C4... l
025550:  64 20 63 2C 61 0D 0A 09 20 6C 64 20 61 2C 68 3A    d c,a... ld a,h:
025560:  20 61 6E 64 20 26 33 46 3A 20 6F 72 20 26 34 30     and &3F: or &40
025570:  3A 20 6C 64 20 68 2C 61 0D 0A 09 20 6C 64 20 61    : ld h,a... ld a
025580:  2C 62 3A 20 6C 64 20 62 2C 26 37 46 0D 0A 09 20    ,b: ld b,&7F... 
025590:  6F 75 74 20 28 63 29 2C 63 3A 20 6C 64 20 28 68    out (c),c: ld (h
0255A0:  6C 29 2C 61 0D 0A 09 20 6C 64 20 63 2C 26 43 30    l),a... ld c,&C0
0255B0:  3A 20 6F 75 74 20 28 63 29 2C 63 0D 0A 09 70 6F    : out (c),c...po
0255C0:  70 20 68 6C 3A 20 70 6F 70 20 62 63 0D 0A 09 72    p hl: pop bc...r
0255D0:  65 74 0D 0A 0D 0A 2E 6C 64 68 6C 61 69 09 63 61    et.....ldhlai.ca
0255E0:  6C 6C 20 6C 64 68 6C 61 0D 0A 09 69 6E 63 20 68    ll ldhla...inc h
0255F0:  6C 3A 20 72 65 74 0D 0A 0D 0A 0D 0A 09 3B 2A 2A    l: ret.......;**
025600:  2A 20 53 55 42 52 09 55 70 70 65 72 2F 6C 6F 77    * SUBR.Upper/low
025610:  65 72 20 63 61 73 65 20 63 6F 6E 76 65 72 73 69    er case conversi
025620:  6F 6E 0D 0A 0D 0A 2E 75 63 61 73 65 09 62 69 74    on.....ucase.bit
025630:  20 37 2C 61 3A 20 6A 70 20 6E 7A 2C 75 63 61 73     7,a: jp nz,ucas
025640:  65 37 0D 0A 09 09 20 63 70 20 26 36 31 3A 20 72    e7.... cp &61: r
025650:  65 74 20 63 3A 20 63 70 20 26 37 42 3A 20 72 65    et c: cp &7B: re
025660:  74 20 6E 63 3A 09 61 64 64 20 26 45 30 3A 20 72    t nc:.add &E0: r
025670:  65 74 0D 0A 2E 75 63 61 73 65 37 09 09 20 63 70    et...ucase7.. cp
025680:  20 26 45 31 3A 20 72 65 74 20 63 3A 20 63 70 20     &E1: ret c: cp 
025690:  26 46 42 3A 20 72 65 74 20 6E 63 3A 20 61 64 64    &FB: ret nc: add
0256A0:  20 26 45 30 3A 20 72 65 74 0D 0A 2E 6C 63 61 73     &E0: ret...lcas
0256B0:  65 09 61 6E 64 20 31 32 37 3A 20 63 70 20 26 34    e.and 127: cp &4
0256C0:  31 3A 20 72 65 74 20 63 3A 20 63 70 20 26 35 42    1: ret c: cp &5B
0256D0:  3A 20 72 65 74 20 6E 63 3A 20 61 64 64 20 26 32    : ret nc: add &2
0256E0:  30 3A 20 72 65 74 0D 0A 0D 0A 09 3B 2A 2A 2A 20    0: ret.....;*** 
0256F0:  53 55 42 52 09 50 72 69 6E 74 20 73 74 72 69 6E    SUBR.Print strin
025700:  0A 2E 68 65 6C 70 6B 79 09 63 61 6C 6C 20 26 42    ..helpky.call &B
025710:  42 30 36 3A 20 63 61 6C 6C 20 75 63 61 73 65 09    B06: call ucase.
025720:  09 09 09 3B 47 65 74 20 6B 65 79 70 72 65 73 73    ...;Get keypress
025730:  0D 0A 09 63 70 20 22 51 22 3A 20 6A 72 20 7A 2C    ...cp "Q": jr z,
025740:  68 65 6C 70 71 74 3A 20 63 70 20 32 35 32 3A 20    helpqt: cp 252: 
025750:  6A 72 20 7A 2C 68 65 6C 70 71 74 09 3B 20 7C 20    jr z,helpqt.; | 
025760:  71 75 69 74 3F 0D 0A 09 63 70 20 22 43 22 3A 20    quit?...cp "C": 
025770:  6A 72 20 7A 2C 68 65 6C 70 70 64 3A 20 63 70 20    jr z,helppd: cp 
025780:  33 32 20 3A 20 6A 72 20 7A 2C 68 65 6C 70 70 64    32 : jr z,helppd
025790:  09 3B 20 7C 20 63 6F 6E 74 69 6E 75 65 3F 0D 0A    .; | continue?..
0257A0:  09 6A 72 20 68 65 6C 70 6B 79 0D 0A 2E 68 65 6C    .jr helpky...hel
0257B0:  70 71 74 09 6C 64 20 64 65 2C 26 30 32 30 43 3A    pqt.ld de,&020C:
0257C0:  20 6C 64 20 68 6C 2C 26 34 44 31 33 3A 20 63 61     ld hl,&4D13: ca
0257D0:  6C 6C 20 26 42 42 36 36 09 09 3B 52 65 74 75 72    ll &BB66..;Retur
0257E0:  6E 20 77 69 6E 64 6F 77 20 74 6F 20 6E 6F 72 6D    n window to norm
0257F0:  61 6C 0D 0A 09 6C 64 20 62 63 2C 31 3A 20 63 61    al...ld bc,1: ca
025800:  6C 6C 20 26 42 42 42 37 3A 20 63 61 6C 6C 20 63    ll &BBB7: call c
025810:  6C 65 61 72 3A 20 6A 70 20 6D 61 69 6E 09 3B 51    lear: jp main.;Q
025820:  75 69 74 0D 0A 0D 0A 0D 0A 09 3B 2A 2A 2A 20 53    uit.......;*** S
025830:  55 42 52 09 43 68 65 63 6B 20 77 6F 72 64 20 61    UBR.Check word a
025840:  74 20 2E 77 6F 72 64 0D 0A 09 3B 09 09 52 65 74    t .word...;..Ret
025850:  75 72 6E 73 20 43 20 69 66 20 66 6F 75 6E 64 2C    urns C if found,
025860:  20 4E 43 20 69 66 20 6E 6F 74 20 66 6F 75 6E 64     NC if not found
025870:  0D 0A 0D 0A 2E 63 68 65 63 6B 09 6C 64 20 61 2C    .....check.ld a,
025880:  28 77 6F 72 64 29 3A 20 63 61 6C 6C 20 73 74 61    (word): call sta
025890:  72 74 09 09 09 3B 47 65 74 20 73 74 61 72 74 20    rt...;Get start 
0258A0:  61 64 64 72 65 73 73 20 6F 66 20 6C 65 74 74 65    address of lette
0258B0:  72 0D 0A 0D 0A 2E 63 68 6B 5F 6F 6C 09 6C 64 20    r.....chk_ol.ld 
0258C0:  64 65 2C 77 6F 72 64 2B 31 09 09 09 09 3B 53 74    de,word+1....;St
0258D0:  61 72 74 20 66 72 6F 6D 20 73 65 63 6F 6E 64 20    art from second 
0258E0:  6C 65 74 74 65 72 0D 0A 2E 63 68 6B 5F 6C 70 09    letter...chk_lp.
0258F0:  6C 64 20 61 2C 28 64 65 29 3A 20 63 61 6C 6C 20    ld a,(de): call 
025900:  67 0D 0A 0D 0A 2E 73 74 72 69 6E 67 09 6C 64 20    g.....string.ld 
025910:  61 2C 28 68 6C 29 3A 20 6F 72 20 61 3A 20 72 65    a,(hl): or a: re
025920:  74 20 7A 3A 20 63 61 6C 6C 20 26 42 42 35 41 3A    t z: call &BB5A:
025930:  20 69 6E 63 20 68 6C 3A 20 6A 72 20 73 74 72 69     inc hl: jr stri
025940:  6E 67 0D 0A 2E 73 74 72 37 09 6C 64 20 61 2C 28    ng...str7.ld a,(
025950:  68 6C 29 3A 20 09 20 20 20 61 6E 64 20 31 32 37    hl): .   and 127
025960:  3A 20 63 61 6C 6C 20 26 42 42 35 41 0D 0A 09 6C    : call &BB5A...l
025970:  64 20 61 2C 28 68 6C 29 3A 20 69 6E 63 20 68 6C    d a,(hl): inc hl
025980:  3A 20 61 6E 64 20 31 32 38 3A 20 6A 72 20 7A 2C    : and 128: jr z,
025990:  73 74 72 37 3A 20 72 65 74 0D 0A 2E 73 74 72 37    str7: ret...str7
0259A0:  31 36 09 6C 64 20 63 2C 30 0D 0A 2E 73 37 31 36    16.ld c,0...s716
0259B0:  6C 09 6C 64 20 61 2C 28 68 6C 29 3A 09 20 20 20    l.ld a,(hl):.   
0259C0:  61 6E 64 20 31 32 37 3A 20 63 61 6C 6C 20 26 42    and 127: call &B
0259D0:  42 35 41 3A 20 69 6E 63 20 63 3A 20 62 69 74 20    B5A: inc c: bit 
0259E0:  34 2C 63 3A 20 72 65 74 20 6E 7A 0D 0A 09 6C 64    4,c: ret nz...ld
0259F0:  20 61 2C 28 68 6C 29 3A 20 69 6E 63 20 68 6C 3A     a,(hl): inc hl:
025A00:  20 61 6E 64 20 31 32 38 3A 20 6A 72 20 7A 2C 73     and 128: jr z,s
025A10:  37 31 36 6C 3A 20 09 09 72 65 74 0D 0A 0D 0A 09    716l: ..ret.....
025A20:  3B 2A 2A 2A 20 53 55 42 52 09 50 72 69 6E 74 20    ;*** SUBR.Print 
025A30:  48 4C 20 61 73 20 28 75 70 20 74 6F 29 20 35 2D    HL as (up to) 5-
025A40:  64 69 67 69 74 20 64 65 63 69 6D 61 6C 0D 0A 0D    digit decimal...
025A50:  0A 2E 70 72 5F 68 6C 09 6C 64 20 63 2C 30 0D 0A    ..pr_hl.ld c,0..
025A60:  09 6C 64 20 64 65 2C 31 30 30 30 30 3A 09 63 61    .ld de,10000:.ca
025A70:  6C 6C 20 70 72 68 6C 72 0D 0A 09 6C 64 20 64 65    ll prhlr...ld de
025A80:  2C 31 30 30 30 3A 09 63 61 6C 6C 20 70 72 68 6C    ,1000:.call prhl
025A90:  72 0D 0A 09 6C 64 20 64 65 2C 31 30 30 3A 09 63    r...ld de,100:.c
025AA0:  61 6C 6C 20 70 72 68 6C 72 0D 0A 09 6C 64 20 64    all prhlr...ld d
025AB0:  65 2C 31 30 3A 09 63 61 6C 6C 20 70 72 68 6C 72    e,10:.call prhlr
025AC0:  0D 0A 09 6C 64 20 64 65 2C 31 3A 09 6C 64 20 63    ...ld de,1:.ld c
025AD0:  2C 31 0D 0A 2E 70 72 68 6C 72 09 78 6F 72 20 61    ,1...prhlr.xor a
025AE0:  0D 0A 2E 70 72 68 6C 6C 70 09 73 63 66 3A 20 63    ...prhllp.scf: c
025AF0:  63 66 3A 20 73 62 63 20 68 6C 2C 64 65 3A 20 6A    cf: sbc hl,de: j
025B00:  75 63 61 73 65 3A 20 6C 64 20 63 2C 61 09 09 3B    ucase: ld c,a..;
025B10:  43 6F 6E 76 65 72 74 20 74 6F 20 75 70 70 65 72    Convert to upper
025B20:  20 63 61 73 65 0D 0A 09 63 61 6C 6C 20 6C 64 61     case...call lda
025B30:  68 6C 3A 20 63 70 20 63 3A 20 6A 72 20 6E 7A 2C    hl: cp c: jr nz,
025B40:  63 68 6B 5F 66 66 09 09 3B 49 73 20 69 74 20 74    chk_ff..;Is it t
025B50:  68 65 20 73 61 6D 65 3F 0D 0A 09 69 6E 63 20 68    he same?...inc h
025B60:  6C 3A 20 69 6E 63 20 64 65 3A 20 61 6E 64 20 31    l: inc de: and 1
025B70:  32 38 3A 20 6A 72 20 7A 2C 63 68 6B 5F 6C 70 09    28: jr z,chk_lp.
025B80:  3B 43 6F 6E 74 69 6E 75 65 20 69 66 20 6E 6F 74    ;Continue if not
025B90:  20 65 6E 64 20 6F 66 20 77 6F 72 64 0D 0A 09 73     end of word...s
025BA0:  63 66 3A 20 72 65 74 09 09 09 09 3B 20 7C 20 69    cf: ret....; | i
025BB0:  66 20 65 6E 64 2C 20 72 65 74 75 72 6E 20 22 66    f end, return "f
025BC0:  6F 75 6E 64 22 0D 0A 0D 0A 2E 63 68 6B 5F 66 66    ound".....chk_ff
025BD0:  09 63 61 6C 6C 20 6C 64 61 68 6C 69 3A 20 6F 72    .call ldahli: or
025BE0:  20 61 3A 20 72 65 74 20 7A 09 09 3B 46 61 73 74     a: ret z..;Fast
025BF0:  20 66 6F 72 77 61 72 64 20 74 6F 20 65 6E 64 20     forward to end 
025C00:  6F 66 20 77 6F 72 64 0D 0A 09 62 69 74 20 37 2C    of word...bit 7,
025C10:  61 3A 20 6A 72 20 7A 2C 63 68 6B 5F 66 66 09 09    a: jr z,chk_ff..
025C20:  09 3B 20 7C 0D 0A 09 6A 70 20 63 68 6B 5F 6F 6C    .; |...jp chk_ol
025C30:  0D 0A 0D 0A 09 3B 2A 2A 2A 20 53 55 42 52 09 43    .....;*** SUBR.C
025C40:  68 65 63 6B 20 77 6F 72 64 20 61 74 20 2E 77 6F    heck word at .wo
025C50:  72 64 20 69 6E 20 64 69 63 74 69 6F 6E 61 72 79    rd in dictionary
025C60:  20 61 74 20 26 34 30 30 30 0D 0A 09 3B 09 09 45     at &4000...;..E
025C70:  6E 64 20 6F 66 20 64 69 63 74 69 6F 6E 61 72 79    nd of dictionary
025C80:  20 61 74 20 49 58 0D 0A 09 3B 09 09 52 65 74 75     at IX...;..Retu
025C90:  72 6E 73 20 43 20 69 66 20 66 6F 75 6E 64 2C 20    rns C if found, 
025CA0:  4E 43 20 69 66 20 6E 6F 74 20 66 6F 75 6E 64 0D    NC if not found.
025CB0:  0A 0D 0A 2E 63 64 69 63 74 09 6C 64 20 68 6C 2C    ....cdict.ld hl,
025CC0:  26 34 30 30 30 09 09 09 09 3B 44 69 63 74 69 6F    &4000....;Dictio
025CD0:  6E 61 72 79 20 61 64 64 72 65 73 73 0D 0A 2E 63    nary address...c
025CE0:  64 5F 6F 6C 09 70 75 73 68 20 68 6C 09 09 09 09    d_ol.push hl....
025CF0:  09 3B 45 6E 64 20 6F 66 20 64 69 63 74 69 6F 6E    .;End of diction
025D00:  72 20 63 2C 70 72 68 6C 6F 0D 0A 09 69 6E 63 20    r c,prhlo...inc 
025D10:  61 3A 20 6A 72 20 70 72 68 6C 6C 70 0D 0A 2E 70    a: jr prhllp...p
025D20:  72 68 6C 6F 09 61 64 64 20 68 6C 2C 64 65 3A 20    rhlo.add hl,de: 
025D30:  6F 72 20 61 3A 20 6A 72 20 6E 7A 2C 70 72 68 6C    or a: jr nz,prhl
025D40:  79 3A 20 63 70 20 63 3A 20 72 65 74 20 7A 0D 0A    y: cp c: ret z..
025D50:  2E 70 72 68 6C 79 09 6C 64 20 63 2C 31 3A 20 61    .prhly.ld c,1: a
025D60:  64 64 20 26 33 30 3A 20 63 61 6C 6C 20 26 42 42    dd &30: call &BB
025D70:  35 41 3A 20 72 65 74 0D 0A 0D 0A 0D 0A 09 3B 2A    5A: ret.......;*
025D80:  2A 2A 20 53 55 42 52 09 49 6E 70 75 74 20 73 74    ** SUBR.Input st
025D90:  72 69 6E 67 20 28 6D 61 78 69 6D 75 6D 20 31 36    ring (maximum 16
025DA0:  20 63 68 61 72 61 63 74 65 72 73 29 0D 0A 09 3B     characters)...;
025DB0:  09 09 4F 6E 20 65 6E 74 72 79 2C 20 61 64 64 72    ..On entry, addr
025DC0:  65 73 73 20 49 58 0D 0A 09 3B 09 09 4F 6E 20 65    ess IX...;..On e
025DD0:  78 69 74 20 2C 20 61 64 64 72 65 73 73 20 48 4C    xit , address HL
025DE0:  2C 20 6C 65 6E 67 74 68 20 42 0D 0A 0D 0A 2E 69    , length B.....i
025DF0:  6E 70 75 74 09 70 75 73 68 20 69 78 3A 20 6C 64    nput.push ix: ld
025E00:  20 62 2C 30 0D 0A 2E 69 6E 70 6B 65 79 09 20 63     b,0...inpkey. c
025E10:  61 6C 6C 20 26 42 42 38 41 0D 0A 09 20 63 61 6C    all &BB8A... cal
025E20:  6C 20 26 42 42 30 36 3A 20 70 75 73 68 20 61 66    l &BB06: push af
025E30:  0D 0A 09 20 63 61 6C 6C 20 26 42 42 38 41 3A 20    ... call &BB8A: 
025E40:  70 6F 70 20 20 61 66 0D 0A 09 20 63 70 20 31 33    pop  af... cp 13
025E50:  20 3A 20 6A 72 20 7A 2C 69 6E 70 65 6E 74 0D 0A     : jr z,inpent..
025E60:  09 20 63 70 20 32 35 32 3A 20 6A 72 20 7A 2C 69    . cp 252: jr z,i
025E70:  6E 70 65 73 63 0D 0A 09 20 63 70 20 31 32 37 3A    npesc... cp 127:
025E80:  20 6A 72 20 7A 2C 69 6E 70 64 65 6C 3A 20 6A 72     jr z,inpdel: jr
025E90:  20 6E 63 2C 69 6E 70 6B 65 79 0D 0A 09 20 63 70     nc,inpkey... cp
025EA0:  20 33 32 20 3A 20 6A 72 20 63 2C 69 6E 70 6B 65     32 : jr c,inpke
025EB0:  79 0D 0A 09 20 62 69 74 20 34 2C 62 3A 20 6A 72    y... bit 4,b: jr
025EC0:  20 6E 7A 2C 69 6E 70 6B 65 79 3A 20 6C 64 20 28     nz,inpkey: ld (
025ED0:  69 78 29 2C 61 3A 20 63 61 6C 6C 20 26 42 42 35    ix),a: call &BB5
025EE0:  41 3A 20 69 6E 63 20 69 78 3A 20 69 6E 63 20 62    A: inc ix: inc b
025EF0:  3A 20 6A 72 20 69 6E 70 6B 65 79 0D 0A 2E 69 6E    : jr inpkey...in
025F00:  61 72 79 20 79 65 74 3F 0D 0A 09 20 65 78 20 64    ary yet?... ex d
025F10:  65 2C 68 6C 3A 20 70 75 73 68 20 69 78 3A 20 70    e,hl: push ix: p
025F20:  6F 70 20 68 6C 09 09 3B 20 7C 0D 0A 09 20 6F 72    op hl..; |... or
025F30:  20 61 3A 20 73 62 63 20 68 6C 2C 64 65 09 09 09     a: sbc hl,de...
025F40:  3B 20 7C 0D 0A 09 70 6F 70 20 68 6C 3A 20 72 65    ; |...pop hl: re
025F50:  74 20 7A 3A 20 63 63 66 3A 20 72 65 74 20 6E 63    t z: ccf: ret nc
025F60:  09 09 3B 20 7C 0D 0A 0D 0A 2E 63 64 5F 6E 6F 74    ..; |.....cd_not
025F70:  09 6C 64 20 64 65 2C 77 6F 72 64 09 09 09 09 3B    .ld de,word....;
025F80:  53 74 61 72 74 20 66 72 6F 6D 20 66 69 72 73 74    Start from first
025F90:  20 6C 65 74 74 65 72 0D 0A 2E 63 64 5F 6C 70 09     letter...cd_lp.
025FA0:  6C 64 20 61 2C 28 64 65 29 3A 20 63 61 6C 6C 20    ld a,(de): call 
025FB0:  75 63 61 73 65 09 09 09 3B 43 6F 6E 76 65 72 74    ucase...;Convert
025FC0:  20 74 6F 20 75 70 70 65 72 20 63 61 73 65 0D 0A     to upper case..
025FD0:  09 63 70 20 28 68 6C 29 3A 20 6A 72 20 6E 7A 2C    .cp (hl): jr nz,
025FE0:  63 64 5F 66 66 3A 20 69 6E 63 20 68 6C 09 09 3B    cd_ff: inc hl..;
025FF0:  49 73 20 69 74 20 74 68 65 20 73 61 6D 65 3F 0D    Is it the same?.
026000:  0A 09 69 6E 63 20 64 65 3A 20 61 6E 64 20 31 32    ..inc de: and 12
026010:  38 3A 20 6A 72 20 7A 2C 63 64 5F 6C 70 09 09 3B    8: jr z,cd_lp..;
026020:  43 6F 6E 74 69 6E 75 65 20 69 66 20 6E 6F 74 20    Continue if not 
026030:  65 6E 64 20 6F 66 20 77 6F 72 64 0D 0A 09 73 63    end of word...sc
026040:  66 3A 20 72 65 74 09 09 09 09 3B 20 7C 20 69 66    f: ret....; | if
026050:  20 65 6E 64 2C 20 72 65 74 75 72 6E 20 22 66 6F     end, return "fo
026060:  75 6E 64 22 0D 0A 0D 0A 2E 63 64 5F 66 66 09 62    und".....cd_ff.b
026070:  69 74 20 37 2C 28 68 6C 29 3A 20 69 6E 63 20 68    it 7,(hl): inc h
026080:  6C 3A 20 6A 72 20 7A 2C 63 64 5F 66 66 09 09 3B    l: jr z,cd_ff..;
026090:  46 61 73 74 20 66 6F 72 77 61 72 64 20 74 6F 20    Fast forward to 
0260A0:  65 6E 64 20 6F 66 20 77 6F 72 64 0D 0A 09 6A 72    end of word...jr
0260B0:  20 63 64 5F 6F 6C 0D 0A 0D 0A 0D 0A 09 3B 2A 2A     cd_ol.......;**
0260C0:  2A 20 53 55 42 52 09 46 69 6E 64 20 73 74 61 72    * SUBR.Find star
0260D0:  74 20 61 64 64 72 65 73 73 20 6F 66 20 6C 65 74    t address of let
0260E0:  74 65 72 20 41 0D 0A 0D 0A 2E 73 74 61 72 74 09    ter A.....start.
0260F0:  61 6E 64 20 26 31 46 3A 20 61 64 64 20 61 3A 20    and &1F: add a: 
026100:  54 72 61 63 6B 2D 49 6E 66 6F 0D 0A 00 00 00 00    Track-Info......
026110:  20 00 01 00 02 09 4E E5 20 00 C3 02 00 00 00 02     .....N. .......
026120:  20 00 C8 02 00 00 00 02 20 00 C4 02 00 00 00 02     ....... .......
026130:  20 00 C9 02 00 00 00 02 20 00 C5 02 00 00 00 02     ....... .......
026140:  20 00 C1 02 00 00 00 02 20 00 C6 02 00 00 00 02     ....... .......
026150:  20 00 C2 02 00 00 00 02 20 00 C7 02 00 00 00 02     ....... .......
026160:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
026170:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
026180:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
026190:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
0261A0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
0261B0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
0261C0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
0261D0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
0261E0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
0261F0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
026200:  34 36 36 09 3B 51 52 53 54 0D 0A 09 64 77 09 34    466.;QRST...dw.4
026210:  35 38 33 39 2C 09 34 37 30 37 32 2C 09 34 37 36    5839,.47072,.476
026220:  36 39 2C 09 34 38 37 38 31 09 3B 55 56 57 58 0D    69,.48781.;UVWX.
026230:  0A 09 64 77 09 34 38 37 38 35 2C 09 34 38 38 37    ..dw.48785,.4887
026240:  39 2C 09 34 38 39 34 39 09 09 3B 59 5A 09 65 6E    9,.48949..;YZ.en
026250:  64 20 6F 66 20 64 61 74 61 0D 0A 0D 0A 0D 0A 09    d of data.......
026260:  3B 2A 2A 2A 20 44 41 54 41 09 4D 69 73 63 65 6C    ;*** DATA.Miscel
026270:  6C 61 6E 65 6F 75 73 0D 0A 0D 0A 2E 68 6C 6E 61    laneous.....hlna
026280:  6D 65 09 64 62 20 22 53 50 45 4C 4C 2E 48 4C 50    me.db "SPELL.HLP
026290:  22 09 09 09 09 3B 48 65 6C 70 20 66 69 6C 65 6E    "....;Help filen
0262A0:  61 6D 65 0D 0A 2E 6D 64 6E 61 6D 65 09 64 62 20    ame...mdname.db 
0262B0:  22 4D 41 53 54 45 52 2E 34 38 4B 22 09 09 09 09    "MASTER.48K"....
0262C0:  3B 4D 61 73 74 65 72 20 64 69 63 74 69 6F 6E 61    ;Master dictiona
0262D0:  72 79 20 66 69 6C 65 6E 61 6D 65 0D 0A 0D 0A 09    ry filename.....
0262E0:  3B 2A 2A 2A 20 56 41 52 49 09 44 69 63 74 69 6F    ;*** VARI.Dictio
0262F0:  6E 61 72 79 20 63 6F 6E 74 72 6F 6C 0D 0A 0D 0A    nary control....
026300:  2E 69 67 5F 74 6F 70 09 64 77 20 26 34 30 30 30    .ig_top.dw &4000
026310:  09 09 09 09 3B 46 69 72 73 74 20 66 72 65 65 20    ....;First free 
026320:  61 64 64 72 65 73 73 20 69 6E 20 22 69 67 6E 6F    address in "igno
026330:  72 65 22 0D 0A 2E 75 73 5F 74 6F 70 09 64 77 20    re"...us_top.dw 
026340:  26 34 30 30 30 09 09 09 09 3B 46 69 72 73 74 20    &4000....;First 
026350:  66 72 65 65 20 61 64 64 72 65 73 73 20 69 6E 20    free address in 
026360:  75 73 65 72 20 64 69 63 74 0D 0A 0D 0A 09 3B 2A    user dict.....;*
026370:  2A 2A 20 56 41 52 49 09 46 69 6C 65 20 76 61 72    ** VARI.File var
026380:  69 61 62 6C 65 73 0D 0A 0D 0A 2E 66 74 79 70 65    iables.....ftype
026390:  09 64 62 20 30 09 09 09 09 09 3B 53 6F 75 72 63    .db 0.....;Sourc
0263A0:  65 20 66 69 6C 65 20 74 79 70 65 0D 0A 2E 68 65    e file type...he
0263B0:  61 64 65 72 09 64 77 20 30 09 09 09 09 09 3B 41    ader.dw 0.....;A
0263C0:  64 64 72 65 73 73 20 6F 66 20 73 6F 75 72 63 65    ddress of source
0263D0:  20 68 65 61 64 65 72 0D 0A 2E 73 66 6E 09 64 73     header...sfn.ds
0263E0:  20 31 36 09 09 09 09 09 3B 53 6F 75 72 63 65 20     16.....;Source 
0263F0:  66 69 6C 65 6E 61 6D 65 0D 0A 2E 64 66 6E 09 64    filename...dfn.d
026400:  33 0D 0A 09 63 61 6C 6C 20 26 42 43 37 41 0D 0A    3...call &BC7A..
026410:  0D 0A 09 6C 64 20 68 6C 2C 26 43 31 34 30 3A 20    ...ld hl,&C140: 
026420:  6C 64 20 64 65 2C 26 33 45 38 3A 20 63 61 6C 6C    ld de,&3E8: call
026430:  20 63 73 74 73 5F 72 0D 0A 09 6C 64 20 68 6C 2C     csts_r...ld hl,
026440:  26 43 31 39 30 3A 20 6C 64 20 64 65 2C 26 34 34    &C190: ld de,&44
026450:  38 3A 20 63 61 6C 6C 20 63 73 74 73 5F 72 0D 0A    8: call csts_r..
026460:  09 6C 64 20 68 6C 2C 26 43 31 45 30 3A 20 6C 64    .ld hl,&C1E0: ld
026470:  20 64 65 2C 26 34 41 38 3A 20 63 61 6C 6C 20 63     de,&4A8: call c
026480:  73 74 73 5F 72 0D 0A 09 6C 64 20 68 6C 2C 26 43    sts_r...ld hl,&C
026490:  32 33 30 3A 20 6C 64 20 64 65 2C 26 35 30 38 3A    230: ld de,&508:
0264A0:  20 63 61 6C 6C 20 63 73 74 73 5F 72 0D 0A 09 6C     call csts_r...l
0264B0:  64 20 68 6C 2C 26 43 32 38 30 3A 20 6C 64 20 64    d hl,&C280: ld d
0264C0:  65 2C 26 35 36 38 3A 20 63 61 6C 6C 20 63 73 74    e,&568: call cst
0264D0:  73 5F 72 0D 0A 09 6C 64 20 68 6C 2C 26 43 32 44    s_r...ld hl,&C2D
0264E0:  30 3A 20 6C 64 20 64 65 2C 26 35 43 38 3A 20 63    0: ld de,&5C8: c
0264F0:  61 6C 6C 20 63 73 74 73 5F 72 0D 0A 09 6C 64 20    all csts_r...ld 
026500:  68 6C 2C 26 43 33 32 30 3A 20 6C 64 20 64 65 2C    hl,&C320: ld de,
026510:  26 36 32 38 3A 20 63 61 6C 6C 20 63 73 74 73 5F    &628: call csts_
026520:  72 0D 0A 09 6C 64 20 68 6C 2C 26 43 33 37 30 3A    r...ld hl,&C370:
026530:  20 6C 64 20 64 65 2C 26 36 38 38 3A 20 63 61 6C     ld de,&688: cal
026540:  6C 20 63 73 74 73 5F 72 0D 0A 09 6C 64 20 68 6C    l csts_r...ld hl
026550:  2C 26 43 33 43 30 3A 20 6C 64 20 64 65 2C 26 36    ,&C3C0: ld de,&6
026560:  45 38 3A 20 63 61 6C 6C 20 63 73 74 73 5F 72 0D    E8: call csts_r.
026570:  0A 09 6C 64 20 68 6C 2C 26 43 34 31 30 3A 20 6C    ..ld hl,&C410: l
026580:  64 20 64 65 2C 26 37 34 38 3A 20 63 61 6C 6C 20    d de,&748: call 
026590:  63 73 74 73 5F 72 0D 0A 0D 0A 09 6C 64 20 68 6C    csts_r.....ld hl
0265A0:  2C 66 6E 61 6D 65 3A 20 6C 64 20 62 2C 31 32 3A    ,fname: ld b,12:
0265B0:  20 63 61 6C 6C 20 26 42 43 37 37 3A 20 6C 64 20     call &BC77: ld 
0265C0:  68 6C 2C 26 43 30 30 30 3A 20 63 61 6C 6C 20 26    hl,&C000: call &
0265D0:  42 43 38 33 3A 20 63 61 6C 6C 20 26 42 43 37 41    BC83: call &BC7A
0265E0:  0D 0A 09 6C 64 20 68 6C 2C 6C 6E 61 6D 65 3A 20    ...ld hl,lname: 
0265F0:  6C 64 20 62 2C 31 32 3A 20 63 61 6C 6C 20 26 42    ld b,12: call &B
026600:  73 20 31 36 09 09 09 09 09 3B 44 65 73 74 69 6E    s 16.....;Destin
026610:  61 74 69 6F 6E 20 66 69 6C 65 6E 61 6D 65 0D 0A    ation filename..
026620:  0D 0A 09 3B 2A 2A 2A 20 56 41 52 49 09 53 70 65    ...;*** VARI.Spe
026630:  6C 6C 2D 63 68 65 63 6B 69 6E 67 0D 0A 0D 0A 2E    ll-checking.....
026640:  77 6F 72 64 73 09 64 77 20 30 09 09 09 09 09 3B    words.dw 0.....;
026650:  4E 75 6D 62 65 72 20 6F 66 20 77 6F 72 64 73 20    Number of words 
026660:  63 68 65 63 6B 65 64 0D 0A 2E 63 68 61 72 09 64    checked...char.d
026670:  62 20 30 09 09 09 09 09 3B 4E 6F 6E 2D 41 53 43    b 0.....;Non-ASC
026680:  49 49 20 63 68 61 72 61 63 74 65 72 0D 0A 2E 63    II character...c
026690:  68 61 72 73 09 64 62 20 30 09 09 09 09 09 3B 54    hars.db 0.....;T
0266A0:  79 70 65 20 6F 66 20 73 20 69 6E 20 22 27 73 22    ype of s in "'s"
0266B0:  0D 0A 2E 77 6F 72 64 09 64 73 20 33 33 09 09 09    ...word.ds 33...
0266C0:  09 09 3B 57 6F 72 64 20 72 65 61 64 20 69 6E 0D    ..;Word read in.
0266D0:  0A 2E 6E 65 77 77 72 64 09 64 73 20 33 33 09 09    ..newwrd.ds 33..
0266E0:  09 09 09 3B 52 65 70 6C 61 63 65 6D 65 6E 74 20    ...;Replacement 
0266F0:  77 6F 72 64 20 28 43 6F 6E 73 75 6C 74 29 0D 0A    word (Consult)..
026700:  2E 69 6E 70 62 75 66 09 64 73 20 31 36 09 09 09    .inpbuf.ds 16...
026710:  09 09 3B 42 75 66 66 65 72 20 66 6F 72 20 63 6F    ..;Buffer for co
026720:  72 72 65 63 74 65 64 20 77 6F 72 64 0D 0A 2E 62    rrected word...b
026730:  65 73 74 09 64 62 20 30 09 09 09 09 09 3B 4E 65    est.db 0.....;Ne
026740:  61 72 65 73 74 20 77 6F 72 64 20 73 6F 20 66 61    arest word so fa
026750:  72 20 28 43 6F 6E 73 75 6C 74 29 0D 0A 0D 0A 0D    r (Consult).....
026760:  0A 09 3B 2A 2A 2A 20 53 55 42 52 09 4C 6F 61 64    ..;*** SUBR.Load
026770:  20 64 69 63 74 69 6F 6E 61 72 79 0D 0A 0D 0A 2E     dictionary.....
026780:  6C 6F 61 64 09 6C 64 20 64 65 2C 26 30 30 34 30    load.ld de,&0040
026790:  3A 20 6C 64 20 63 2C 37 09 09 09 3B 41 4D 53 44    : ld c,7...;AMSD
0267A0:  4F 53 20 6F 6E 0D 0A 09 6C 64 20 68 6C 2C 26 42    OS on...ld hl,&B
0267B0:  30 46 46 3A 20 63 61 6C 6C 20 26 42 43 43 45 09    0FF: call &BCCE.
0267C0:  09 09 3B 20 7C 0D 0A 09 6C 64 20 61 2C 31 3A 20    ..; |...ld a,1: 
0267D0:  63 61 6C 6C 20 26 42 43 36 42 09 09 09 3B 54 61    call &BC6B...;Ta
0267E0:  70 65 20 70 72 6F 6D 70 74 73 20 6F 66 66 0D 0A    pe prompts off..
0267F0:  0D 0A 09 6C 64 20 68 6C 2C 26 33 46 46 46 3A 20    ...ld hl,&3FFF: 
026800:  43 37 37 3A 20 6C 64 20 68 6C 2C 66 6F 6E 74 20    C77: ld hl,font 
026810:  3A 20 63 61 6C 6C 20 26 42 43 38 33 3A 20 63 61    : call &BC83: ca
026820:  6C 6C 20 26 42 43 37 41 0D 0A 09 6C 64 20 68 6C    ll &BC7A...ld hl
026830:  2C 6D 6E 61 6D 65 3A 20 6C 64 20 62 2C 31 32 3A    ,mname: ld b,12:
026840:  20 63 61 6C 6C 20 26 42 43 37 37 3A 20 6C 64 20     call &BC77: ld 
026850:  68 6C 2C 6D 75 73 69 63 3A 20 63 61 6C 6C 20 26    hl,music: call &
026860:  42 43 38 33 3A 20 63 61 6C 6C 20 26 42 43 37 41    BC83: call &BC7A
026870:  0D 0A 0D 0A 09 6C 64 20 62 63 2C 26 30 37 32 33    .....ld bc,&0723
026880:  3A 20 63 61 6C 6C 20 63 72 74 63 0D 0A 09 6C 64    : call crtc...ld
026890:  20 62 63 2C 26 30 33 38 35 3A 20 63 61 6C 6C 20     bc,&0385: call 
0268A0:  63 72 74 63 0D 0A 09 6C 64 20 62 63 2C 26 30 32    crtc...ld bc,&02
0268B0:  33 32 3A 20 63 61 6C 6C 20 63 72 74 63 0D 0A 09    32: call crtc...
0268C0:  6C 64 20 62 63 2C 26 30 36 32 31 3A 20 63 61 6C    ld bc,&0621: cal
0268D0:  6C 20 63 72 74 63 0D 0A 09 6C 64 20 62 63 2C 26    l crtc...ld bc,&
0268E0:  30 31 33 30 3A 20 63 61 6C 6C 20 63 72 74 63 0D    0130: call crtc.
0268F0:  0A 09 6C 64 20 62 63 2C 26 30 43 30 43 3A 20 63    ..ld bc,&0C0C: c
026900:  61 6C 6C 20 63 72 74 63 0D 0A 09 6C 64 20 62 63    all crtc...ld bc
026910:  2C 26 30 44 34 30 3A 20 63 61 6C 6C 20 63 72 74    ,&0D40: call crt
026920:  63 0D 0A 0D 0A 09 6C 64 20 68 6C 2C 31 30 2A 39    c.....ld hl,10*9
026930:  36 2B 26 38 30 3A 20 6C 64 20 64 2C 68 3A 20 6C    6+&80: ld d,h: l
026940:  64 20 65 2C 6C 3A 20 69 6E 63 20 64 65 3A 20 3B    d e,l: inc de: ;
026950:  6C 64 20 28 68 6C 29 2C 32 35 35 3A 20 6C 64 20    ld (hl),255: ld 
026960:  62 63 2C 39 35 3A 20 3B 6C 64 69 72 0D 0A 09 6C    bc,95: ;ldir...l
026970:  64 20 68 6C 2C 31 38 2A 39 36 2B 26 38 30 3A 20    d hl,18*96+&80: 
026980:  6C 64 20 64 2C 68 3A 20 6C 64 20 65 2C 6C 3A 20    ld d,h: ld e,l: 
026990:  69 6E 63 20 64 65 3A 20 3B 6C 64 20 28 68 6C 29    inc de: ;ld (hl)
0269A0:  2C 32 35 35 3A 20 6C 64 20 62 63 2C 39 35 3A 20    ,255: ld bc,95: 
0269B0:  3B 6C 64 69 72 0D 0A 0D 0A 09 3B 26 34 34 32 30    ;ldir.....;&4420
0269C0:  20 2D 20 73 74 61 72 74 20 6F 66 20 66 69 72 73     - start of firs
0269D0:  74 20 72 6F 77 09 2D 20 26 34 34 37 46 0D 0A 09    t row.- &447F...
0269E0:  3B 26 34 34 38 30 20 2D 20 73 74 61 72 74 20 6F    ;&4480 - start o
0269F0:  66 20 73 65 63 6F 6E 64 20 72 6F 77 09 2D 20 26    f second row.- &
026A00:  6C 64 20 28 68 6C 29 2C 6C 09 09 09 3B 4E 65 65    ld (hl),l...;Nee
026A10:  64 65 64 20 66 6F 72 20 22 70 72 65 76 22 20 69    ded for "prev" i
026A20:  6E 20 45 64 69 74 20 55 73 65 72 0D 0A 0D 0A 09    n Edit User.....
026A30:  6C 64 20 68 6C 2C 68 6C 6E 61 6D 65 3A 20 6C 64    ld hl,hlname: ld
026A40:  20 62 2C 39 09 09 09 3B 4C 6F 61 64 20 68 65 6C     b,9...;Load hel
026A50:  70 20 66 69 6C 65 0D 0A 09 6C 64 20 64 65 2C 69    p file...ld de,i
026A60:  6E 62 75 66 66 3A 20 63 61 6C 6C 20 26 42 43 37    nbuff: call &BC7
026A70:  37 09 09 3B 20 7C 0D 0A 09 6C 64 20 68 6C 2C 26    7..; |...ld hl,&
026A80:  34 30 20 20 20 3A 20 63 61 6C 6C 20 26 42 43 38    40   : call &BC8
026A90:  33 09 09 3B 20 7C 0D 0A 09 63 61 6C 6C 20 26 42    3..; |...call &B
026AA0:  43 37 41 09 09 09 09 3B 20 7C 0D 0A 0D 0A 09 6C    C7A....; |.....l
026AB0:  64 20 68 6C 2C 6D 64 6E 61 6D 65 3A 20 6C 64 20    d hl,mdname: ld 
026AC0:  62 2C 31 30 09 09 09 3B 4F 70 65 6E 20 64 69 63    b,10...;Open dic
026AD0:  74 69 6F 6E 61 72 79 0D 0A 09 6C 64 20 64 65 2C    tionary...ld de,
026AE0:  69 6E 62 75 66 66 3A 20 63 61 6C 6C 20 26 42 43    inbuff: call &BC
026AF0:  37 37 09 09 3B 20 7C 0D 0A 09 70 75 73 68 20 68    77..; |...push h
026B00:  6C 3A 20 70 6F 70 20 69 78 09 09 09 09 3B 20 7C    l: pop ix....; |
026B10:  0D 0A 09 6C 64 20 62 63 2C 26 37 46 43 34 09 09    ...ld bc,&7FC4..
026B20:  09 09 3B 20 7C 0D 0A 0D 0A 2E 6C 6F 61 64 31 36    ..; |.....load16
026B30:  09 6C 64 20 61 2C 28 26 42 43 38 33 29 3A 20 63    .ld a,(&BC83): c
026B40:  70 20 26 43 46 3A 20 6A 72 20 7A 2C 74 61 70 65    p &CF: jr z,tape
026B50:  31 36 09 3B 4C 6F 61 64 20 31 36 6B 20 62 6C 6F    16.;Load 16k blo
026B60:  63 6B 73 0D 0A 09 6C 64 20 28 69 78 2B 36 34 29    cks...ld (ix+64)
026B70:  2C 30 3A 20 6C 64 20 28 69 78 2B 36 35 29 2C 26    ,0: ld (ix+65),&
026B80:  34 30 09 09 3B 66 72 6F 6D 20 64 69 73 63 0D 0A    40..;from disc..
026B90:  09 6C 64 20 28 69 78 2B 36 36 29 2C 30 3A 20 6F    .ld (ix+66),0: o
026BA0:  75 74 20 28 63 29 2C 63 09 09 09 3B 20 7C 0D 0A    ut (c),c...; |..
026BB0:  09 70 75 73 68 20 62 63 3A 20 70 75 73 68 20 69    .push bc: push i
026BC0:  78 09 09 09 3B 20 7C 0D 0A 09 20 6C 64 20 68 6C    x...; |... ld hl
026BD0:  2C 26 34 30 30 30 3A 20 63 61 6C 6C 20 26 42 43    ,&4000: call &BC
026BE0:  38 33 09 09 3B 20 7C 0D 0A 09 70 6F 70 20 69 78    83..; |...pop ix
026BF0:  3A 20 70 6F 70 20 62 63 3A 20 6A 72 20 6C 6F 61    : pop bc: jr loa
026C00:  2C 33 2C 22 50 6C 65 61 73 65 20 73 65 6C 65 63    ,3,"Please selec
026C10:  74 3A 20 20 20 22 2C 32 34 2C 22 45 22 2C 32 34    t:   ",24,"E",24
026C20:  2C 22 64 69 74 20 20 20 22 2C 32 34 2C 22 43 22    ,"dit   ",24,"C"
026C30:  2C 32 34 2C 22 6F 6E 73 75 6C 74 20 20 20 22 0D    ,24,"onsult   ".
026C40:  0A 09 64 62 20 32 34 2C 22 4C 22 2C 32 34 2C 22    ..db 24,"L",24,"
026C50:  65 61 72 6E 20 20 20 22 2C 32 34 2C 22 49 22 2C    earn   ",24,"I",
026C60:  32 34 2C 22 67 6E 6F 72 65 20 20 20 49 67 6E 6F    24,"gnore   Igno
026C70:  72 65 20 22 0D 0A 09 64 62 20 32 34 2C 22 61 22    re "...db 24,"a"
026C80:  2C 32 34 2C 22 6C 6C 20 20 20 22 2C 32 34 2C 22    ,24,"ll   ",24,"
026C90:  51 22 2C 32 34 2C 22 75 69 74 22 2C 30 0D 0A 2E    Q",24,"uit",0...
026CA0:  66 75 6C 6C 74 78 09 64 62 20 22 53 6F 72 72 79    fulltx.db "Sorry
026CB0:  2C 20 74 68 65 72 65 20 69 73 20 6E 6F 20 6D 65    , there is no me
026CC0:  6D 6F 72 79 20 6C 65 66 74 20 74 6F 20 61 64 64    mory left to add
026CD0:  20 77 6F 72 64 73 2E 20 50 72 65 73 73 20 61 6E     words. Press an
026CE0:  79 20 6B 65 79 20 74 6F 20 63 6F 6E 74 69 6E 75    y key to continu
026CF0:  65 2E 22 2C 30 0D 0A 2E 65 64 69 74 74 78 09 64    e.",0...edittx.d
026D00:  62 20 22 49 6E 70 75 74 20 63 6F 72 72 65 63 74    b "Input correct
026D10:  65 64 20 77 6F 72 64 3A 20 22 2C 30 0D 0A 2E 61    ed word: ",0...a
026D20:  64 64 5F 74 78 09 64 62 20 22 49 6E 70 75 74 20    dd_tx.db "Input 
026D30:  77 6F 72 64 20 74 6F 20 61 64 64 3A 20 22 2C 30    word to add: ",0
026D40:  0D 0A 2E 6E 74 64 5F 74 78 09 64 62 20 33 31 2C    ...ntd_tx.db 31,
026D50:  32 37 2C 31 34 2C 22 4E 6F 74 20 61 20 75 73 65    27,14,"Not a use
026D60:  72 20 64 69 63 74 69 6F 6E 61 72 79 20 66 69 6C    r dictionary fil
026D70:  65 2E 22 0D 0A 09 64 62 20 33 31 2C 33 34 2C 31    e."...db 31,34,1
026D80:  36 2C 22 20 20 20 20 20 20 20 50 72 65 73 73 20    6,"       Press 
026D90:  61 6E 79 20 6B 65 79 22 2C 30 0D 0A 2E 65 64 69    any key",0...edi
026DA0:  5F 74 78 09 64 62 20 33 31 2C 31 2C 33 2C 22 50    _tx.db 31,1,3,"P
026DB0:  6C 65 61 73 65 20 73 65 6C 65 63 74 3A 20 20 20    lease select:   
026DC0:  22 2C 32 34 2C 22 41 22 2C 32 34 2C 22 64 64 20    ",24,"A",24,"dd 
026DD0:  20 20 22 2C 32 34 2C 22 44 65 6C 22 2C 32 34 2C      ",24,"Del",24,
026DE0:  22 65 74 65 20 20 20 22 0D 0A 09 64 62 20 32 34    "ete   "...db 24
026DF0:  2C 22 4E 22 2C 32 34 2C 22 65 78 74 20 70 61 67    ,"N",24,"ext pag
026E00:  64 6C 70 09 09 3B 20 7C 0D 0A 2E 74 61 70 65 31    dlp..; |...tape1
026E10:  36 09 6F 75 74 20 28 63 29 2C 63 3A 20 6C 64 20    6.out (c),c: ld 
026E20:  68 6C 2C 26 34 30 30 30 09 09 09 3B 66 72 6F 6D    hl,&4000...;from
026E30:  20 74 61 70 65 0D 0A 2E 74 61 70 65 6C 70 09 63     tape...tapelp.c
026E40:  61 6C 6C 20 26 42 43 38 30 3A 20 6C 64 20 28 68    all &BC80: ld (h
026E50:  6C 29 2C 61 3A 20 69 6E 63 20 68 6C 09 09 3B 20    l),a: inc hl..; 
026E60:  7C 0D 0A 09 6C 64 20 61 2C 68 3A 20 63 70 20 26    |...ld a,h: cp &
026E70:  38 30 3A 20 6A 72 20 6E 7A 2C 74 61 70 65 6C 70    80: jr nz,tapelp
026E80:  09 09 3B 20 7C 0D 0A 0D 0A 2E 6C 6F 61 64 6C 70    ..; |.....loadlp
026E90:  09 69 6E 63 20 63 3A 20 6C 64 20 61 2C 63 3A 20    .inc c: ld a,c: 
026EA0:  63 70 20 26 43 37 3A 20 6A 72 20 6E 7A 2C 6C 6F    cp &C7: jr nz,lo
026EB0:  61 64 31 36 09 3B 4C 6F 6F 70 0D 0A 09 6C 64 20    ad16.;Loop...ld 
026EC0:  63 2C 26 43 30 3A 20 6F 75 74 20 28 63 29 2C 63    c,&C0: out (c),c
026ED0:  09 09 09 3B 20 7C 0D 0A 0D 0A 09 63 61 6C 6C 20    ...; |.....call 
026EE0:  26 42 43 37 41 09 09 09 09 3B 43 6C 6F 73 65 20    &BC7A....;Close 
026EF0:  64 69 63 74 69 6F 6E 61 72 79 0D 0A 09 72 65 74    dictionary...ret
026F00:  0D 0A 1A 50 45 4C 4C 20 20 20 24 24 24 FF 00 FF    ...PELL   $$$...
026F10:  09 3B 28 63 29 20 31 39 39 34 20 52 69 63 68 61    .;(c) 1994 Richa
026F20:  72 64 20 46 61 69 72 68 75 72 73 74 0D 0A 0D 0A    rd Fairhurst....
026F30:  09 6F 72 67 20 26 37 38 30 30 0D 0A 09 77 72 69    .org &7800...wri
026F40:  74 65 20 22 73 70 65 6C 6C 2E 62 69 6E 22 0D 0A    te "spell.bin"..
026F50:  09 6E 6F 6C 69 73 74 0D 0A 0D 0A 69 6E 62 75 66    .nolist....inbuf
026F60:  66 09 65 71 75 20 26 31 30 30 30 0D 0A 6F 74 62    f.equ &1000..otb
026F70:  75 66 66 09 65 71 75 20 26 31 38 30 30 0D 0A 0D    uff.equ &1800...
026F80:  34 30 09 09 3B 66 72 6F 6D 20 64 69 73 63 0D 0A    40..;from disc..
026F90:  09 6C 64 20 28 69 78 2B 36 36 29 2C 30 3A 20 6F    .ld (ix+66),0: o
026FA0:  75 74 20 28 63 29 2C 63 09 09 09 3B 20 7C 0D 0A    ut (c),c...; |..
026FB0:  09 70 75 73 68 20 62 63 3A 20 70 75 73 68 20 69    .push bc: push i
026FC0:  78 09 09 09 3B 20 7C 0D 0A 09 20 6C 64 20 68 6C    x...; |... ld hl
026FD0:  2C 26 34 30 30 30 3A 20 63 61 6C 6C 20 26 42 43    ,&4000: call &BC
026FE0:  38 33 09 09 3B 20 7C 0D 0A 09 70 6F 70 20 69 78    83..; |...pop ix
026FF0:  3A 20 70 6F 70 20 62 63 3A 20 6A 72 20 6C 6F 61    : pop bc: jr loa
027000:  65 20 20 20 22 2C 32 34 2C 22 50 22 2C 32 34 2C    e   ",24,"P",24,
027010:  22 72 65 76 69 6F 75 73 20 70 61 67 65 20 20 20    "revious page   
027020:  22 2C 32 34 2C 22 51 22 2C 32 34 2C 22 75 69 74    ",24,"Q",24,"uit
027030:  22 2C 30 0D 0A 2E 63 6F 6E 5F 74 78 09 64 62 20    ",0...con_tx.db 
027040:  33 31 2C 31 2C 31 2C 22 43 75 72 72 65 6E 74 20    31,1,1,"Current 
027050:  77 6F 72 64 3A 20 22 0D 0A 09 64 62 20 33 31 2C    word: "...db 31,
027060:  31 2C 33 2C 22 50 6C 65 61 73 65 20 73 65 6C 65    1,3,"Please sele
027070:  63 74 3A 20 20 20 22 2C 32 34 2C 22 55 22 2C 32    ct:   ",24,"U",2
027080:  34 2C 22 73 65 20 20 20 22 2C 32 34 2C 22 4E 22    4,"se   ",24,"N"
027090:  2C 32 34 2C 22 65 78 74 20 77 6F 72 64 20 20 20    ,24,"ext word   
0270A0:  22 0D 0A 09 64 62 20 32 34 2C 22 50 22 2C 32 34    "...db 24,"P",24
0270B0:  2C 22 72 65 76 69 6F 75 73 20 77 6F 72 64 20 20    ,"revious word  
0270C0:  20 22 2C 32 34 2C 22 51 22 2C 32 34 2C 22 75 69     ",24,"Q",24,"ui
0270D0:  74 22 2C 30 0D 0A 2E 68 65 6C 70 74 78 09 64 62    t",0...helptx.db
0270E0:  20 33 31 2C 31 2C 32 2C 22 50 6C 65 61 73 65 20     31,1,2,"Please 
0270F0:  73 65 6C 65 63 74 3A 20 20 20 22 2C 32 34 2C 22    select:   ",24,"
027100:  43 22 2C 32 34 2C 22 6F 6E 74 69 6E 75 65 20 20    C",24,"ontinue  
027110:  20 22 2C 32 34 2C 22 51 22 2C 32 34 2C 22 75 69     ",24,"Q",24,"ui
027120:  74 22 2C 30 0D 0A 0D 0A 09 3B 2A 2A 2A 20 44 41    t",0.....;*** DA
027130:  54 41 09 41 53 43 49 49 20 72 65 66 65 72 65 6E    TA.ASCII referen
027140:  63 65 20 74 61 62 6C 65 0D 0A 0D 0A 2E 6C 65 74    ce table.....let
027150:  74 65 72 09 64 77 09 30 2C 09 33 35 31 37 2C 09    ter.dw.0,.3517,.
027160:  35 34 30 31 2C 09 31 30 35 39 36 09 3B 41 42 43    5401,.10596.;ABC
027170:  44 0D 0A 09 64 77 09 31 33 39 35 38 2C 09 31 36    D...dw.13958,.16
027180:  36 38 37 2C 09 31 39 30 36 30 2C 09 32 30 32 32    687,.19060,.2022
027190:  34 09 3B 45 46 47 48 0D 0A 09 64 77 09 32 31 33    4.;EFGH...dw.213
0271A0:  39 32 2C 09 32 34 31 33 33 2C 09 32 34 34 30 39    92,.24133,.24409
0271B0:  2C 09 32 34 36 31 30 09 3B 49 4A 4B 4C 0D 0A 09    ,.24610.;IJKL...
0271C0:  64 77 09 32 35 38 33 39 2C 09 32 37 38 32 31 2C    dw.25839,.27821,
0271D0:  09 32 38 36 36 31 2C 09 33 30 36 32 32 09 3B 4D    .28661,.30622.;M
0271E0:  4E 4F 50 0D 0A 09 64 77 09 33 35 30 37 34 2C 09    NOP...dw.35074,.
0271F0:  33 35 32 39 38 2C 09 33 38 36 32 36 2C 09 34 33    35298,.38626,.43
027200:  0D 0A 09 3B 53 54 53 20 4D 65 65 74 69 6E 67 20    ...;STS Meeting 
027210:  44 65 6D 6F 20 2F 20 42 54 4C 20 33 20 69 6E 74    Demo / BTL 3 int
027220:  72 6F 0D 0A 09 3B 73 74 61 72 72 69 6E 67 20 54    ro...;starring T
027230:  61 6D 73 69 6E 20 74 68 65 20 57 6F 6E 64 65 72    amsin the Wonder
027240:  20 43 61 74 0D 0A 0D 0A 09 6F 72 67 20 26 38 30     Cat.....org &80
027250:  30 30 0D 0A 09 77 72 69 74 65 20 22 64 69 73 63    00...write "disc
027260:  2E 62 69 6E 22 0D 0A 09 6E 6F 6C 69 73 74 0D 0A    .bin"...nolist..
027270:  0D 0A 63 61 74 31 72 09 65 71 75 20 26 43 30 30    ..cat1r.equ &C00
027280:  30 0D 0A 63 61 74 32 72 09 65 71 75 20 26 43 31    0..cat2r.equ &C1
027290:  32 43 0D 0A 63 61 74 33 72 09 65 71 75 20 26 43    2C..cat3r.equ &C
0272A0:  32 35 38 0D 0A 63 61 74 31 6C 09 65 71 75 20 26    258..cat1l.equ &
0272B0:  43 33 38 34 0D 0A 63 61 74 32 6C 09 65 71 75 20    C384..cat2l.equ 
0272C0:  26 43 34 42 30 0D 0A 63 61 74 33 6C 09 65 71 75    &C4B0..cat3l.equ
0272D0:  20 26 43 35 44 43 0D 0A 63 61 74 73 74 09 65 71     &C5DC..catst.eq
0272E0:  75 20 26 43 37 30 38 0D 0A 6D 75 73 69 63 09 65    u &C708..music.e
0272F0:  71 75 20 26 44 30 30 30 0D 0A 0D 0A 74 6F 70 6C    qu &D000....topl
027300:  6E 09 65 71 75 20 26 34 30 30 30 09 09 09 09 3B    n.equ &4000....;
027310:  39 2A 39 36 2B 26 38 30 2B 32 0D 0A 0D 0A 66 6F    9*96+&80+2....fo
027320:  6E 74 09 65 71 75 20 26 39 42 30 30 09 09 09 09    nt.equ &9B00....
027330:  3B 48 49 4D 45 4D 2D 26 31 30 30 30 20 74 68 65    ;HIMEM-&1000 the
027340:  6E 20 70 61 67 65 2D 61 6C 69 67 6E 65 64 0D 0A    n page-aligned..
027350:  0D 0A 09 3B 2A 2A 2A 20 49 4E 49 54 09 49 6E 69    ...;*** INIT.Ini
027360:  74 69 61 6C 69 73 61 74 69 6F 6E 0D 0A 0D 0A 09    tialisation.....
027370:  6C 64 20 61 2C 31 3A 20 63 61 6C 6C 20 26 42 43    ld a,1: call &BC
027380:  30 45 0D 0A 0D 0A 09 6C 64 20 68 6C 2C 26 42 30    0E.....ld hl,&B0
027390:  46 46 3A 20 6C 64 20 63 2C 37 0D 0A 09 6C 64 20    FF: ld c,7...ld 
0273A0:  64 65 2C 26 30 30 34 30 3A 20 63 61 6C 6C 20 26    de,&0040: call &
0273B0:  42 43 43 45 0D 0A 0D 0A 09 6C 64 20 68 6C 2C 73    BCCE.....ld hl,s
0273C0:  6E 61 6D 65 3A 20 6C 64 20 62 2C 31 32 0D 0A 09    name: ld b,12...
0273D0:  6C 64 20 64 65 2C 26 43 30 30 30 3A 20 63 61 6C    ld de,&C000: cal
0273E0:  6C 20 26 42 43 37 37 0D 0A 09 6C 64 20 68 6C 2C    l &BC77...ld hl,
0273F0:  26 43 30 30 30 3A 20 63 61 6C 6C 20 26 42 43 38    &C000: call &BC8
027400:  54 72 61 63 6B 2D 49 6E 66 6F 0D 0A 00 00 00 00    Track-Info......
027410:  21 00 01 00 02 09 4E E5 21 00 C6 02 00 00 00 02    !.....N.!.......
027420:  21 00 C2 02 00 00 00 02 21 00 C7 02 00 00 00 02    !.......!.......
027430:  21 00 C3 02 00 00 00 02 21 00 C8 02 00 00 00 02    !.......!.......
027440:  21 00 C4 02 00 00 00 02 21 00 C9 02 00 00 00 02    !.......!.......
027450:  21 00 C5 02 00 00 00 02 21 00 C1 02 00 00 00 02    !.......!.......
027460:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
027470:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
027480:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
027490:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
0274A0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
0274B0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
0274C0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
0274D0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
0274E0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
0274F0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
027500:  3B 43 68 61 52 6C 65 79 54 72 6F 6E 69 43 20 4D    ;ChaRleyTroniC M
027510:  61 63 42 75 67 73 20 64 65 6D 6F 0D 0A 3B 28 63    acBugs demo..;(c
027520:  29 31 39 39 35 20 43 52 54 43 2F 53 79 73 74 65    )1995 CRTC/Syste
027530:  6D 65 20 44 0D 0A 0D 0A 6F 72 67 20 26 35 30 30    me D....org &500
027540:  30 0D 0A 6E 6F 6C 69 73 74 0D 0A 6C 69 6D 69 74    0..nolist..limit
027550:  20 26 36 37 30 30 0D 0A 0D 0A 20 20 20 20 20 20     &6700....      
027560:  20 20 3B 53 63 72 65 65 6E 20 73 65 74 75 70 0D      ;Screen setup.
027570:  0A 0D 0A 20 20 20 20 20 20 20 20 6C 64 20 61 2C    ...        ld a,
027580:  32 3A 20 63 61 6C 6C 20 26 42 43 30 45 0D 0A 20    2: call &BC0E.. 
027590:  20 20 20 20 20 20 20 6C 64 20 68 6C 2C 6D 61 63           ld hl,mac
0275A0:  73 70 72 3A 20 6C 64 20 64 65 2C 26 43 30 30 30    spr: ld de,&C000
0275B0:  3A 20 6C 64 20 61 2C 38 0D 0A 2E 6D 61 63 73 6C    : ld a,8...macsl
0275C0:  70 20 6C 64 20 62 63 2C 31 36 30 20 20 3A 20 6C    p ld bc,160  : l
0275D0:  64 69 72 0D 0A 20 20 20 20 20 20 20 20 6C 64 20    dir..        ld 
0275E0:  62 63 2C 26 37 36 30 20 3A 20 65 78 20 64 65 2C    bc,&760 : ex de,
0275F0:  68 6C 0D 0A 20 20 20 20 20 20 20 20 61 64 64 20    hl..        add 
027600:  68 6C 2C 62 63 20 20 3A 20 65 78 20 64 65 2C 68    hl,bc  : ex de,h
027610:  6C 0D 0A 20 20 20 20 20 20 20 20 64 65 63 20 61    l..        dec a
027620:  3A 20 6A 72 20 6E 7A 2C 6D 61 63 73 6C 70 0D 0A    : jr nz,macslp..
027630:  0D 0A 20 20 20 20 20 20 20 20 64 69 3A 20 6C 64    ..        di: ld
027640:  20 68 6C 2C 28 26 33 38 29 3A 20 6C 64 20 28 73     hl,(&38): ld (s
027650:  74 33 38 29 2C 68 6C 0D 0A 20 20 20 20 20 20 20    t38),hl..       
027660:  20 20 20 20 20 6C 64 20 68 6C 2C 26 43 39 46 42         ld hl,&C9FB
027670:  3A 20 6C 64 20 28 26 33 38 20 29 2C 68 6C 3A 20    : ld (&38 ),hl: 
027680:  65 69 0D 0A 0D 0A 20 20 20 20 20 20 20 20 6C 64    ei....        ld
027690:  20 62 63 2C 26 37 46 31 30 3A 20 6C 64 20 61 2C     bc,&7F10: ld a,
0276A0:  26 35 34 3A 20 6F 75 74 20 28 63 29 2C 63 3A 20    &54: out (c),c: 
0276B0:  6F 75 74 20 28 63 29 2C 61 0D 0A 0D 0A 20 20 20    out (c),a....   
0276C0:  20 20 20 20 20 6C 64 20 64 65 2C 36 31 30 0D 0A         ld de,610..
0276D0:  20 20 20 20 20 20 20 20 6C 64 20 68 6C 2C 26 43            ld hl,&C
0276E0:  35 41 30 3A 20 6C 64 20 28 68 6C 29 2C 32 35 35    5A0: ld (hl),255
0276F0:  0D 0A 0D 0A 2E 70 6F 73 74 64 6F 20 3B 4D 61 69    .....postdo ;Mai
027700:  61 6C 6C 20 63 72 74 63 0D 0A 09 6C 64 20 62 63    all crtc...ld bc
027710:  2C 26 30 36 31 39 3A 20 63 61 6C 6C 20 63 72 74    ,&0619: call crt
027720:  63 0D 0A 09 6C 64 20 62 63 2C 26 30 32 32 45 3A    c...ld bc,&022E:
027730:  20 63 61 6C 6C 20 63 72 74 63 0D 0A 09 6C 64 20     call crtc...ld 
027740:  62 63 2C 26 30 31 32 38 3A 20 63 61 6C 6C 20 63    bc,&0128: call c
027750:  72 74 63 0D 0A 09 6C 64 20 62 63 2C 26 30 43 33    rtc...ld bc,&0C3
027760:  30 3A 20 63 61 6C 6C 20 63 72 74 63 0D 0A 09 6C    0: call crtc...l
027770:  64 20 62 63 2C 26 30 44 30 30 3A 20 63 61 6C 6C    d bc,&0D00: call
027780:  20 63 72 74 63 0D 0A 0D 0A 09 6C 64 20 61 2C 32     crtc.....ld a,2
027790:  3A 20 6A 70 20 26 42 43 30 45 0D 0A 0D 0A 09 3B    : jp &BC0E.....;
0277A0:  2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D    ----------------
0277B0:  2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D    ----------------
0277C0:  20 61 6E 69 6D 61 74 69 6F 6E 20 2D 2D 2D 2D 2D     animation -----
0277D0:  2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D    ----------------
0277E0:  2D 2D 2D 2D 2D 2D 2D 0D 0A 0D 0A 09 3B 2A 2A 2A    -------.....;***
0277F0:  20 52 4F 55 54 09 44 69 73 70 6C 61 79 20 73 70     ROUT.Display sp
027800:  72 69 74 65 20 69 6E 20 63 6F 72 72 65 63 74 20    rite in correct 
027810:  70 6F 73 69 74 69 6F 6E 0D 0A 0D 0A 2E 64 69 73    position.....dis
027820:  70 09 6C 64 20 61 2C 28 61 6E 69 5F 79 29 3A 20    p.ld a,(ani_y): 
027830:  63 61 6C 6C 20 73 63 72 61 64 64 09 09 09 3B 47    call scradd...;G
027840:  65 74 20 73 63 72 65 65 6E 20 61 64 64 72 65 73    et screen addres
027850:  73 0D 0A 09 6C 64 20 61 2C 28 61 6E 69 5F 78 29    s...ld a,(ani_x)
027860:  3A 20 6C 64 20 65 2C 61 3A 20 6C 64 20 64 2C 30    : ld e,a: ld d,0
027870:  3A 20 61 64 64 20 68 6C 2C 64 65 09 09 3B 41 64    : add hl,de..;Ad
027880:  64 20 78 20 70 6F 73 69 74 69 6F 6E 0D 0A 09 6C    d x position...l
027890:  64 20 64 65 2C 74 6F 70 6C 6E 20 3A 20 61 64 64    d de,topln : add
0278A0:  20 68 6C 2C 64 65 09 09 09 09 3B 41 64 64 20 62     hl,de....;Add b
0278B0:  61 73 65 20 61 64 64 72 65 73 73 0D 0A 0D 0A 09    ase address.....
0278C0:  70 75 73 68 20 68 6C 09 09 09 09 09 09 3B 47 65    push hl......;Ge
0278D0:  74 20 73 70 72 69 74 65 20 61 64 64 72 65 73 73    t sprite address
0278E0:  0D 0A 09 20 6C 64 20 68 6C 2C 28 63 61 74 70 69    ... ld hl,(catpi
0278F0:  63 29 3A 20 6C 64 20 68 2C 30 09 09 09 09 3B 20    c): ld h,0....; 
027900:  6E 20 63 6F 64 65 0D 0A 0D 0A 2E 66 66 20 20 20    n code.....ff   
027910:  20 20 6C 64 20 62 2C 26 46 35 0D 0A 2E 66 66 6C      ld b,&F5...ffl
027920:  6F 6F 70 20 69 6E 20 61 2C 28 63 29 3A 20 72 72    oop in a,(c): rr
027930:  61 0D 0A 20 20 20 20 20 20 20 20 6A 72 20 6E 63    a..        jr nc
027940:  2C 66 66 6C 6F 6F 70 0D 0A 0D 0A 20 20 20 20 20    ,ffloop....     
027950:  20 20 20 70 75 73 68 20 64 65 0D 0A 20 20 20 20       push de..    
027960:  20 20 20 20 6C 64 20 62 63 2C 26 37 46 38 45 3A        ld bc,&7F8E:
027970:  20 6F 75 74 20 28 63 29 2C 63 0D 0A 20 20 20 20     out (c),c..    
027980:  20 20 20 20 6C 64 20 20 63 2C 20 20 26 30 31 3A        ld  c,  &01:
027990:  20 6F 75 74 20 28 63 29 2C 63 3A 20 6C 64 20 61     out (c),c: ld a
0279A0:  2C 26 35 34 3A 20 6F 75 74 20 28 63 29 2C 61 0D    ,&54: out (c),a.
0279B0:  0A 20 20 20 20 20 20 20 20 64 65 63 20 63 20 20    .        dec c  
0279C0:  20 20 20 20 3A 20 6F 75 74 20 28 63 29 2C 63 3A        : out (c),c:
0279D0:  20 6C 64 20 61 2C 26 34 42 3A 20 6F 75 74 20 28     ld a,&4B: out (
0279E0:  63 29 2C 61 0D 0A 0D 0A 20 20 20 20 20 20 20 20    c),a....        
0279F0:  3B 41 70 70 6C 65 20 72 61 73 74 65 72 73 0D 0A    ;Apple rasters..
027A00:  0D 0A 20 20 20 20 20 20 20 20 6C 64 20 65 2C 26    ..        ld e,&
027A10:  35 34 3A 20 68 61 6C 74 0D 0A 20 20 20 20 20 20    54: halt..      
027A20:  20 20 6C 64 20 62 63 2C 26 32 38 43 0D 0A 2E 74      ld bc,&28C...t
027A30:  69 6D 69 6E 67 20 64 65 63 20 62 63 3A 20 6C 64    iming dec bc: ld
027A40:  20 61 2C 62 3A 20 6F 72 20 63 3A 20 6A 72 20 6E     a,b: or c: jr n
027A50:  7A 2C 74 69 6D 69 6E 67 0D 0A 0D 0A 20 20 20 20    z,timing....    
027A60:  20 20 20 20 64 73 20 31 35 0D 0A 20 20 20 20 20        ds 15..     
027A70:  20 20 20 6C 64 20 62 63 2C 26 37 46 30 31 3A 20       ld bc,&7F01: 
027A80:  6F 75 74 20 28 63 29 2C 63 0D 0A 20 20 20 20 20    out (c),c..     
027A90:  20 20 20 6C 64 20 61 2C 26 35 32 3A 20 6F 75 74       ld a,&52: out
027AA0:  20 28 63 29 2C 61 3A 20 6F 75 74 20 28 63 29 2C     (c),a: out (c),
027AB0:  65 3A 20 64 73 20 35 34 0D 0A 20 20 20 20 20 20    e: ds 54..      
027AC0:  20 20 6C 64 20 61 2C 26 35 32 3A 20 6F 75 74 20      ld a,&52: out 
027AD0:  28 63 29 2C 61 3A 20 6F 75 74 20 28 63 29 2C 65    (c),a: out (c),e
027AE0:  3A 20 64 73 20 35 34 0D 0A 20 20 20 20 20 20 20    : ds 54..       
027AF0:  20 6C 64 20 61 2C 26 34 39 3A 20 6F 75 74 20 28     ld a,&49: out (
027B00:  7C 0D 0A 09 20 61 64 64 20 68 6C 2C 68 6C 3A 20    |... add hl,hl: 
027B10:  61 64 64 20 68 6C 2C 68 6C 09 09 09 09 3B 20 7C    add hl,hl....; |
027B20:  0D 0A 09 20 6C 64 20 64 65 2C 70 69 63 74 62 6C    ... ld de,pictbl
027B30:  3A 20 61 64 64 20 68 6C 2C 64 65 09 09 09 3B 20    : add hl,de...; 
027B40:  7C 0D 0A 09 20 6C 64 20 65 2C 28 68 6C 29 3A 20    |... ld e,(hl): 
027B50:  69 6E 63 20 68 6C 09 09 09 09 3B 20 7C 0D 0A 09    inc hl....; |...
027B60:  20 6C 64 20 64 2C 28 68 6C 29 3A 20 69 6E 63 20     ld d,(hl): inc 
027B70:  68 6C 09 09 09 09 3B 20 7C 0D 0A 09 20 6C 64 20    hl....; |... ld 
027B80:  61 2C 28 68 6C 29 09 09 09 09 09 3B 20 7C 0D 0A    a,(hl).....; |..
027B90:  09 70 6F 70 20 68 6C 3A 20 65 78 20 64 65 2C 68    .pop hl: ex de,h
027BA0:  6C 0D 0A 09 6A 70 20 73 70 72 69 74 65 0D 0A 0D    l...jp sprite...
027BB0:  0A 2E 70 69 63 74 62 6C 09 64 77 20 63 61 74 31    ..pictbl.dw cat1
027BC0:  72 2C 32 35 2C 63 61 74 32 72 2C 32 35 2C 63 61    r,25,cat2r,25,ca
027BD0:  74 33 72 2C 32 35 2C 63 61 74 32 72 2C 32 35 0D    t3r,25,cat2r,25.
027BE0:  0A 09 64 77 20 63 61 74 31 6C 2C 32 35 2C 63 61    ..dw cat1l,25,ca
027BF0:  74 32 6C 2C 32 35 2C 63 61 74 33 6C 2C 32 35 2C    t2l,25,cat3l,25,
027C00:  63 61 74 32 6C 2C 32 35 0D 0A 09 64 77 20 63 61    cat2l,25...dw ca
027C10:  74 73 74 2C 32 31 0D 0A 0D 0A 09 3B 2D 2D 2D 20    tst,21.....;--- 
027C20:  73 75 62 72 09 43 6F 6E 76 65 72 74 20 70 69 78    subr.Convert pix
027C30:  65 6C 20 6C 69 6E 65 20 6E 75 6D 62 65 72 20 41    el line number A
027C40:  20 74 6F 20 73 63 72 65 65 6E 20 61 64 64 72 65     to screen addre
027C50:  73 73 20 48 4C 0D 0A 0D 0A 2E 73 63 72 61 64 64    ss HL.....scradd
027C60:  09 6C 64 20 63 2C 61 3A 20 61 6E 64 20 26 46 38    .ld c,a: and &F8
027C70:  09 09 09 09 09 3B 31 32 2A 28 72 6F 77 5C 38 29    .....;12*(row\8)
027C80:  20 66 6F 72 20 63 68 61 72 72 6F 77 73 0D 0A 09     for charrows...
027C90:  6C 64 20 6C 2C 61 3A 20 6C 64 20 68 2C 30 3A 20    ld l,a: ld h,0: 
027CA0:  61 64 64 20 68 6C 2C 68 6C 3A 20 61 64 64 20 68    add hl,hl: add h
027CB0:  6C 2C 68 6C 3A 20 70 75 73 68 20 68 6C 09 3B 20    l,hl: push hl.; 
027CC0:  7C 0D 0A 09 61 64 64 20 68 6C 2C 68 6C 3A 20 70    |...add hl,hl: p
027CD0:  6F 70 20 64 65 3A 20 61 64 64 20 68 6C 2C 64 65    op de: add hl,de
027CE0:  09 09 09 3B 20 7C 0D 0A 0D 0A 09 6C 64 20 61 2C    ...; |.....ld a,
027CF0:  63 3A 20 61 6E 64 20 37 3A 20 61 64 64 20 61 3A    c: and 7: add a:
027D00:  63 29 2C 61 3A 20 6F 75 74 20 28 63 29 2C 65 3A    c),a: out (c),e:
027D10:  20 64 73 20 35 34 0D 0A 20 20 20 20 20 20 20 20     ds 54..        
027D20:  6C 64 20 61 2C 26 34 39 3A 20 6F 75 74 20 28 63    ld a,&49: out (c
027D30:  29 2C 61 3A 20 6F 75 74 20 28 63 29 2C 65 3A 20    ),a: out (c),e: 
027D40:  64 73 20 35 34 0D 0A 20 20 20 20 20 20 20 20 6C    ds 54..        l
027D50:  64 20 61 2C 26 34 45 3A 20 6F 75 74 20 28 63 29    d a,&4E: out (c)
027D60:  2C 61 3A 20 6F 75 74 20 28 63 29 2C 65 3A 20 64    ,a: out (c),e: d
027D70:  73 20 35 34 0D 0A 20 20 20 20 20 20 20 20 6C 64    s 54..        ld
027D80:  20 61 2C 26 34 43 3A 20 6F 75 74 20 28 63 29 2C     a,&4C: out (c),
027D90:  61 3A 20 6F 75 74 20 28 63 29 2C 65 3A 20 64 73    a: out (c),e: ds
027DA0:  20 35 34 0D 0A 20 20 20 20 20 20 20 20 6C 64 20     54..        ld 
027DB0:  61 2C 26 34 46 3A 20 6F 75 74 20 28 63 29 2C 61    a,&4F: out (c),a
027DC0:  3A 20 6F 75 74 20 28 63 29 2C 65 3A 20 64 73 20    : out (c),e: ds 
027DD0:  35 34 0D 0A 20 20 20 20 20 20 20 20 6C 64 20 61    54..        ld a
027DE0:  2C 26 35 35 3A 20 6F 75 74 20 28 63 29 2C 61 3A    ,&55: out (c),a:
027DF0:  20 6F 75 74 20 28 63 29 2C 65 0D 0A 0D 0A 20 20     out (c),e....  
027E00:  20 20 20 20 20 20 6C 64 20 62 63 2C 26 31 36 0D          ld bc,&16.
027E10:  0A 2E 74 69 6D 32 20 20 20 64 65 63 20 62 63 3A    ..tim2   dec bc:
027E20:  20 6C 64 20 61 2C 62 3A 20 6F 72 20 63 3A 20 6A     ld a,b: or c: j
027E30:  72 20 6E 7A 2C 74 69 6D 32 0D 0A 20 20 20 20 20    r nz,tim2..     
027E40:  20 20 20 6C 64 20 62 63 2C 26 37 46 30 30 3A 20       ld bc,&7F00: 
027E50:  6F 75 74 20 28 63 29 2C 63 0D 0A 20 20 20 20 20    out (c),c..     
027E60:  20 20 20 6C 64 20 61 20 2C 26 35 35 20 20 3A 20       ld a ,&55  : 
027E70:  6F 75 74 20 28 63 29 2C 61 0D 0A 0D 0A 20 20 20    out (c),a....   
027E80:  20 20 20 20 20 3B 52 61 73 74 65 72 20 64 69 73         ;Raster dis
027E90:  70 6C 61 79 0D 0A 0D 0A 20 20 20 20 20 20 20 20    play....        
027EA0:  6C 64 20 68 6C 2C 63 6F 6C 73 70 63 0D 0A 20 20    ld hl,colspc..  
027EB0:  20 20 20 20 20 20 6C 64 20 62 63 2C 26 36 0D 0A          ld bc,&6..
027EC0:  2E 74 69 6D 33 20 20 20 64 65 63 20 62 63 3A 20    .tim3   dec bc: 
027ED0:  6C 64 20 61 2C 62 3A 20 6F 72 20 63 3A 20 6A 72    ld a,b: or c: jr
027EE0:  20 6E 7A 2C 74 69 6D 33 0D 0A 0D 0A 20 20 20 20     nz,tim3....    
027EF0:  20 20 20 20 6C 64 20 62 63 2C 26 37 46 38 44 3A        ld bc,&7F8D:
027F00:  43 52 54 43 20 53 6F 75 72 63 65 20 43 6F 64 65    CRTC Source Code
027F10:  20 43 6F 6C 6C 65 63 74 69 6F 6E 20 20 76 6F 6C     Collection  vol
027F20:  75 6D 65 20 31 0D 0A 7E 7E 7E 7E 7E 7E 7E 7E 7E    ume 1..~~~~~~~~~
027F30:  7E 7E 7E 7E 7E 7E 7E 7E 7E 7E 7E 7E 7E 7E 7E 7E    ~~~~~~~~~~~~~~~~
027F40:  7E 7E 0D 0A 54 68 69 73 20 64 69 73 63 20 63 6F    ~~..This disc co
027F50:  6E 74 61 69 6E 73 20 5A 38 30 20 73 6F 75 72 63    ntains Z80 sourc
027F60:  65 20 63 6F 64 65 20 66 6F 72 20 61 20 6E 75 6D    e code for a num
027F70:  62 65 72 20 6F 66 20 77 65 6C 6C 2D 6B 6E 6F 77    ber of well-know
027F80:  6E 20 0D 8A 70 72 6F 67 72 61 6D 73 2C 20 66 6F    n ..programs, fo
027F90:  72 20 61 70 70 72 65 6E 74 69 63 65 20 70 72 6F    r apprentice pro
027FA0:  67 72 61 6D 6D 65 72 73 20 74 6F 20 73 74 75 64    grammers to stud
027FB0:  79 20 61 6E 64 20 6C 65 61 72 6E 20 66 72 6F 6D    y and learn from
027FC0:  2E 0D 0A 0D 0A 41 6C 6C 20 6F 66 20 74 68 65 20    .....All of the 
027FD0:  66 69 6C 65 73 20 61 72 65 20 69 6E 20 50 72 6F    files are in Pro
027FE0:  74 65 78 74 20 66 6F 72 6D 61 74 20 61 6E 64 20    text format and 
027FF0:  77 65 72 65 20 77 72 69 74 74 65 6E 20 66 6F 72    were written for
028000:  20 41 72 6E 6F 72 27 73 20 0D 8A 65 78 63 65 6C     Arnor's ..excel
028010:  6C 65 6E 74 20 4D 61 78 61 6D 20 31 2E 35 20 61    lent Maxam 1.5 a
028020:  73 73 65 6D 62 6C 65 72 2E 20 59 6F 75 20 77 6F    ssembler. You wo
028030:  6E 27 74 20 62 65 20 61 62 6C 65 20 74 6F 20 75    n't be able to u
028040:  73 65 20 74 68 65 6D 20 77 69 74 68 20 0D 8A 54    se them with ..T
028050:  75 72 62 6F 20 41 73 73 65 6D 62 6C 65 72 20 28    urbo Assembler (
028060:  61 74 20 6C 65 61 73 74 2C 20 6E 6F 74 20 74 68    at least, not th
028070:  65 20 63 75 72 72 65 6E 74 20 76 65 72 73 69 6F    e current versio
028080:  6E 29 2C 20 73 6F 20 64 6F 6E 27 74 20 62 6F 74    n), so don't bot
028090:  68 65 72 20 0D 8A 74 72 79 69 6E 67 2E 0D 0A 0D    her ..trying....
0280A0:  0A 41 6C 74 68 6F 75 67 68 20 74 68 65 20 73 6F    .Although the so
0280B0:  75 72 63 65 20 63 6F 64 65 20 69 73 20 6E 6F 74    urce code is not
0280C0:  20 69 6E 74 65 6E 64 65 64 20 74 6F 20 62 65 20     intended to be 
0280D0:  72 65 75 73 65 64 20 76 65 72 62 61 74 69 6D 20    reused verbatim 
0280E0:  6F 72 20 0D 8A 72 65 61 73 73 65 6D 62 6C 65 64    or ..reassembled
0280F0:  20 2D 20 69 6E 64 65 65 64 2C 20 73 6F 6D 65 20     - indeed, some 
028100:  20 6F 75 74 20 28 63 29 2C 63 0D 0A 20 20 20 20     out (c),c..    
028110:  20 20 20 20 6C 64 20 20 63 2C 20 20 26 30 30 3A        ld  c,  &00:
028120:  20 6F 75 74 20 28 63 29 2C 63 0D 0A 20 20 20 20     out (c),c..    
028130:  20 20 20 20 64 65 63 20 63 3A 20 64 69 0D 0A 20        dec c: di.. 
028140:  20 20 20 20 20 20 20 64 73 20 31 32 3A 20 6C 64           ds 12: ld
028150:  20 61 2C 31 32 38 0D 0A 2E 72 6C 69 6E 65 6C 20     a,128...rlinel 
028160:  6F 75 74 69 3A 6F 75 74 69 3A 6F 75 74 69 3A 6F    outi:outi:outi:o
028170:  75 74 69 3A 20 6F 75 74 69 3A 6F 75 74 69 3A 6F    uti: outi:outi:o
028180:  75 74 69 3A 6F 75 74 69 3A 20 6C 64 20 62 63 2C    uti:outi: ld bc,
028190:  26 37 46 46 46 3A 20 64 73 20 31 37 3A 20 64 65    &7FFF: ds 17: de
0281A0:  63 20 61 3A 20 6A 70 20 6E 7A 2C 72 6C 69 6E 65    c a: jp nz,rline
0281B0:  6C 0D 0A 0D 0A 20 20 20 20 20 20 20 20 3B 6F 75    l....        ;ou
0281C0:  74 69 20 20 20 20 20 3D 20 35 2A 6E 6F 70 0D 0A    ti     = 5*nop..
0281D0:  20 20 20 20 20 20 20 20 3B 6C 64 20 63 2C 26 46            ;ld c,&F
0281E0:  46 20 3D 20 32 0D 0A 0D 0A 20 20 20 20 20 20 20    F = 2....       
0281F0:  20 6C 64 20 61 2C 26 35 35 3A 20 6F 75 74 20 28     ld a,&55: out (
028200:  63 29 2C 61 3A 20 65 69 0D 0A 0D 0A 20 20 20 20    c),a: ei....    
028210:  20 20 20 20 3B 52 61 73 74 65 72 20 6D 6F 76 65        ;Raster move
028220:  6D 65 6E 74 0D 0A 0D 0A 20 20 20 20 20 20 20 20    ment....        
028230:  20 6C 64 20 61 2C 28 73 74 61 67 65 29 0D 0A 20     ld a,(stage).. 
028240:  20 20 20 20 20 20 20 20 64 65 63 20 61 3A 20 6A            dec a: j
028250:  72 20 7A 2C 73 74 61 67 65 31 0D 0A 20 20 20 20    r z,stage1..    
028260:  20 20 20 20 20 64 65 63 20 61 3A 20 6A 72 20 7A         dec a: jr z
028270:  2C 73 74 61 67 65 32 0D 0A 20 20 20 20 20 20 20    ,stage2..       
028280:  20 20 64 65 63 20 61 3A 20 6A 72 20 7A 2C 73 74      dec a: jr z,st
028290:  61 67 65 33 0D 0A 20 20 20 20 20 20 20 20 20 64    age3..         d
0282A0:  65 63 20 61 3A 20 6A 72 20 7A 2C 73 74 61 67 65    ec a: jr z,stage
0282B0:  34 0D 0A 20 20 20 20 20 20 20 20 20 6A 70 20 71    4..         jp q
0282C0:  75 69 74 69 74 0D 0A 0D 0A 2E 73 74 61 67 65 31    uitit.....stage1
0282D0:  20 20 6C 64 20 69 78 2C 66 69 6E 61 6C 31 2B 32      ld ix,final1+2
0282E0:  30 3A 20 6C 64 20 62 2C 36 3A 20 6C 64 20 69 79    0: ld b,6: ld iy
0282F0:  2C 72 72 65 64 20 20 3A 20 6A 72 20 72 6D 6C 6F    ,rred  : jr rmlo
028300:  70 72 6F 67 72 61 6D 73 20 28 73 75 63 68 20 61    programs (such a
028310:  73 20 74 68 65 20 42 54 4C 20 33 20 69 6E 74 72    s the BTL 3 intr
028320:  6F 20 61 6E 64 20 0D 8A 50 6F 77 65 72 53 70 65    o and ..PowerSpe
028330:  6C 6C 29 20 72 65 71 75 69 72 65 20 61 64 64 69    ll) require addi
028340:  74 69 6F 6E 61 6C 20 72 65 73 6F 75 72 63 65 73    tional resources
028350:  20 62 65 66 6F 72 65 20 74 68 65 79 20 77 69 6C     before they wil
028360:  6C 20 77 6F 72 6B 20 0D 8A 70 72 6F 70 65 72 6C    l work ..properl
028370:  79 20 2D 20 79 6F 75 20 61 72 65 20 77 65 6C 63    y - you are welc
028380:  6F 6D 65 20 74 6F 20 77 72 69 74 65 20 66 6F 72    ome to write for
028390:  20 70 65 72 6D 69 73 73 69 6F 6E 20 73 68 6F 75     permission shou
0283A0:  6C 64 20 79 6F 75 20 66 69 6E 64 20 61 20 0D 8A    ld you find a ..
0283B0:  72 6F 75 74 69 6E 65 20 79 6F 75 20 63 61 6E 27    routine you can'
0283C0:  74 20 6C 69 76 65 20 77 69 74 68 6F 75 74 2E 20    t live without. 
0283D0:  53 69 64 65 20 42 20 6F 66 20 74 68 65 20 64 69    Side B of the di
0283E0:  73 63 20 61 6C 73 6F 20 63 6F 6E 74 61 69 6E 73    sc also contains
0283F0:  20 0D 8A 73 65 76 65 72 61 6C 20 73 75 62 72 6F     ..several subro
028400:  75 74 69 6E 65 73 20 74 68 61 74 20 79 6F 75 20    utines that you 
028410:  61 72 65 20 66 72 65 65 20 74 6F 20 75 73 65 20    are free to use 
028420:  69 6E 20 79 6F 75 72 20 6F 77 6E 20 70 72 6F 67    in your own prog
028430:  72 61 6D 73 2E 0D 0A 0D 0A 53 74 61 6E 64 61 72    rams.....Standar
028440:  64 20 22 41 6C 6D 6F 73 74 20 50 44 22 20 63 6F    d "Almost PD" co
028450:  6E 64 69 74 69 6F 6E 73 20 61 70 70 6C 79 20 74    nditions apply t
028460:  6F 20 61 6C 6C 20 73 6F 66 74 77 61 72 65 20 6F    o all software o
028470:  6E 20 74 68 69 73 20 64 69 73 63 3A 20 69 74 20    n this disc: it 
028480:  0D 8A 6D 61 79 20 6E 6F 74 20 62 65 20 64 69 73    ..may not be dis
028490:  74 72 69 62 75 74 65 64 20 63 6F 6D 6D 65 72 63    tributed commerc
0284A0:  69 61 6C 6C 79 20 6F 72 20 73 65 6D 69 2D 63 6F    ially or semi-co
0284B0:  6D 6D 65 72 63 69 61 6C 6C 79 20 77 69 74 68 6F    mmercially witho
0284C0:  75 74 20 0D 8A 77 72 69 74 74 65 6E 20 70 65 72    ut ..written per
0284D0:  6D 69 73 73 69 6F 6E 20 66 72 6F 6D 20 74 68 65    mission from the
0284E0:  20 61 75 74 68 6F 72 2C 20 61 6E 64 20 61 6C 74     author, and alt
0284F0:  68 6F 75 67 68 20 79 6F 75 20 61 72 65 20 77 65    hough you are we
028500:  34 34 44 46 0D 0A 09 3B 26 34 34 45 30 20 2D 20    44DF...;&44E0 - 
028510:  73 74 61 72 74 20 6F 66 20 66 72 65 65 20 6D 65    start of free me
028520:  6D 6F 72 79 0D 0A 0D 0A 09 64 69 3A 20 6C 64 20    mory.....di: ld 
028530:  68 6C 2C 28 26 33 38 29 3A 20 6C 64 20 28 72 33    hl,(&38): ld (r3
028540:  38 29 2C 68 6C 0D 0A 09 20 20 20 20 6C 64 20 68    8),hl...    ld h
028550:  6C 2C 26 43 39 46 42 3A 20 6C 64 20 28 26 33 38    l,&C9FB: ld (&38
028560:  29 2C 68 6C 3A 20 65 69 0D 0A 0D 0A 09 6C 64 20    ),hl: ei.....ld 
028570:  65 2C 31 3A 20 63 61 6C 6C 20 6D 75 73 69 63 0D    e,1: call music.
028580:  0A 0D 0A 2E 74 65 73 74 6C 70 09 6C 64 20 62 2C    ....testlp.ld b,
028590:  26 46 35 0D 0A 09 69 6E 20 61 2C 28 63 29 3A 20    &F5...in a,(c): 
0285A0:  72 72 61 3A 20 6A 72 20 6E 63 2C 74 65 73 74 6C    rra: jr nc,testl
0285B0:  70 0D 0A 09 6C 64 20 62 63 2C 26 37 46 30 30 3A    p...ld bc,&7F00:
0285C0:  20 6C 64 20 61 2C 26 35 34 3A 20 6F 75 74 20 28     ld a,&54: out (
0285D0:  63 29 2C 63 3A 20 6F 75 74 20 28 63 29 2C 61 0D    c),c: out (c),a.
0285E0:  0A 0D 0A 09 63 61 6C 6C 20 73 63 72 6F 6C 6C 0D    ....call scroll.
0285F0:  0A 2E 63 6F 75 6E 74 72 09 6C 64 20 61 2C 31 3A    ..countr.ld a,1:
028600:  20 64 65 63 20 61 3A 20 6A 72 20 6E 7A 2C 6E 6F     dec a: jr nz,no
028610:  61 6E 69 6D 0D 0A 09 63 61 6C 6C 20 64 69 73 70    anim...call disp
028620:  0D 0A 09 63 61 6C 6C 20 75 70 64 61 74 65 0D 0A    ...call update..
028630:  2E 6E 6F 61 6E 69 6D 09 6C 64 20 28 63 6F 75 6E    .noanim.ld (coun
028640:  74 72 2B 31 29 2C 61 0D 0A 09 63 61 6C 6C 20 6D    tr+1),a...call m
028650:  77 63 61 6C 63 0D 0A 09 63 61 6C 6C 20 6D 75 73    wcalc...call mus
028660:  69 63 2B 33 0D 0A 0D 0A 09 6C 64 20 62 63 2C 26    ic+3.....ld bc,&
028670:  37 46 30 30 3A 20 6C 64 20 61 2C 26 34 43 3A 20    7F00: ld a,&4C: 
028680:  6F 75 74 20 28 63 29 2C 63 3A 20 6F 75 74 20 28    out (c),c: out (
028690:  63 29 2C 61 0D 0A 2E 6E 6F 72 73 74 74 09 6A 70    c),a...norstt.jp
0286A0:  20 74 65 73 74 6C 70 0D 0A 0D 0A 2E 72 33 38 09     testlp.....r38.
0286B0:  64 77 20 30 0D 0A 0D 0A 09 63 61 6C 6C 20 26 42    dw 0.....call &B
0286C0:  44 31 39 0D 0A 09 63 61 6C 6C 20 26 42 42 30 39    D19...call &BB09
0286D0:  3A 20 6A 72 20 6E 63 2C 74 65 73 74 6C 70 0D 0A    : jr nc,testlp..
0286E0:  0D 0A 09 63 61 6C 6C 20 6D 75 73 69 63 2B 36 0D    ...call music+6.
0286F0:  0A 09 6C 64 20 62 63 2C 26 30 37 31 45 3A 20 63    ..ld bc,&071E: c
028700:  54 72 61 63 6B 2D 49 6E 66 6F 0D 0A 00 00 00 00    Track-Info......
028710:  22 00 01 00 02 09 4E E5 22 00 C9 02 00 00 00 02    ".....N.".......
028720:  22 00 C5 02 00 00 00 02 22 00 C1 02 00 00 00 02    ".......".......
028730:  22 00 C6 02 00 00 00 02 22 00 C2 02 00 00 00 02    ".......".......
028740:  22 00 C7 02 00 00 00 02 22 00 C3 02 00 00 00 02    ".......".......
028750:  22 00 C8 02 00 00 00 02 22 00 C4 02 00 00 00 02    ".......".......
028760:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
028770:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
028780:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
028790:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
0287A0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
0287B0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
0287C0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
0287D0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
0287E0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
0287F0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
028800:  2C 30 2C 30 2C 30 2C 30 2C 30 2C 30 2C 30 2C 30    ,0,0,0,0,0,0,0,0
028810:  2C 30 2C 30 2C 30 2C 30 2C 30 2C 30 2C 30 2C 30    ,0,0,0,0,0,0,0,0
028820:  2C 30 2C 30 2C 30 2C 30 2C 30 2C 30 2C 30 2C 30    ,0,0,0,0,0,0,0,0
028830:  0D 0A 20 20 20 20 20 20 20 20 64 62 20 30 2C 30    ..        db 0,0
028840:  2C 30 2C 30 2C 30 2C 30 2C 30 2C 30 2C 30 2C 30    ,0,0,0,0,0,0,0,0
028850:  2C 30 2C 30 2C 30 2C 30 2C 30 2C 30 2C 30 2C 30    ,0,0,0,0,0,0,0,0
028860:  2C 30 2C 30 2C 30 2C 30 2C 30 2C 30 2C 30 2C 30    ,0,0,0,0,0,0,0,0
028870:  2C 30 2C 30 2C 30 2C 30 2C 30 2C 30 2C 30 2C 30    ,0,0,0,0,0,0,0,0
028880:  2C 30 2C 30 2C 30 2C 30 2C 31 2C 32 35 35 0D 0A    ,0,0,0,0,1,255..
028890:  20 20 20 20 20 20 20 20 64 62 20 30 2C 30 2C 37            db 0,0,7
0288A0:  2C 32 35 35 2C 30 2C 30 2C 31 2C 31 39 32 2C 32    ,255,0,0,1,192,2
0288B0:  33 38 2C 31 32 36 2C 30 2C 30 2C 30 2C 31 32 37    38,126,0,0,0,127
0288C0:  2C 31 35 39 2C 32 32 30 2C 31 32 30 2C 30 2C 30    ,159,220,120,0,0
0288D0:  2C 30 2C 36 30 2C 31 31 35 2C 32 34 39 2C 32 33    ,0,60,115,249,23
0288E0:  31 2C 31 32 38 2C 30 2C 30 2C 33 31 2C 32 30 37    1,128,0,0,31,207
0288F0:  2C 32 33 39 2C 32 32 37 2C 32 34 39 2C 31 39 32    ,239,227,249,192
028900:  2C 30 2C 30 2C 32 35 34 2C 31 32 37 2C 33 31 2C    ,0,0,254,127,31,
028910:  31 39 39 2C 32 33 31 0D 0A 20 20 20 20 20 20 20    199,231..       
028920:  20 64 62 20 36 33 2C 31 38 34 2C 30 2C 30 2C 30     db 63,184,0,0,0
028930:  2C 30 2C 30 2C 30 2C 30 2C 30 2C 30 2C 30 2C 30    ,0,0,0,0,0,0,0,0
028940:  2C 30 2C 30 2C 30 2C 30 2C 30 2C 30 2C 30 2C 30    ,0,0,0,0,0,0,0,0
028950:  2C 30 2C 30 2C 30 2C 30 2C 30 2C 30 2C 30 2C 30    ,0,0,0,0,0,0,0,0
028960:  2C 30 2C 30 2C 37 2C 30 2C 36 2C 30 2C 31 2C 31    ,0,0,7,0,6,0,1,1
028970:  36 31 2C 32 33 36 2C 30 2C 30 0D 0A 20 20 20 20    61,236,0,0..    
028980:  20 20 20 20 64 62 20 32 32 34 2C 30 2C 30 2C 34        db 224,0,0,4
028990:  38 2C 30 2C 30 2C 30 2C 30 2C 30 2C 30 2C 30 2C    8,0,0,0,0,0,0,0,
0289A0:  30 2C 30 2C 30 2C 30 2C 30 2C 30 2C 30 2C 30 2C    0,0,0,0,0,0,0,0,
0289B0:  30 2C 30 2C 30 2C 30 2C 30 2C 30 2C 30 2C 30 2C    0,0,0,0,0,0,0,0,
0289C0:  30 2C 30 2C 30 2C 30 2C 30 2C 30 2C 30 2C 30 2C    0,0,0,0,0,0,0,0,
0289D0:  30 2C 30 2C 30 2C 30 2C 30 0D 0A 20 20 20 20 20    0,0,0,0,0..     
0289E0:  20 20 20 64 62 20 30 2C 30 2C 30 2C 30 2C 30 2C       db 0,0,0,0,0,
0289F0:  30 2C 30 2C 30 2C 30 2C 30 2C 30 2C 30 2C 30 2C    0,0,0,0,0,0,0,0,
028A00:  6C 64 20 28 68 6C 29 2C 63 20 20 3A 20 61 64 64    ld (hl),c  : add
028A10:  20 68 6C 2C 64 65 3A 20 6C 64 20 28 68 6C 29 2C     hl,de: ld (hl),
028A20:  63 20 20 3A 20 61 64 64 20 68 6C 2C 64 65 0D 0A    c  : add hl,de..
028A30:  20 20 20 20 20 20 20 20 6C 64 20 28 68 6C 29 2C            ld (hl),
028A40:  26 35 35 3A 20 61 64 64 20 68 6C 2C 64 65 3A 20    &55: add hl,de: 
028A50:  6C 64 20 28 68 6C 29 2C 26 35 35 3A 20 61 64 64    ld (hl),&55: add
028A60:  20 68 6C 2C 64 65 0D 0A 20 20 20 20 20 20 20 20     hl,de..        
028A70:  6C 64 20 28 68 6C 29 2C 61 20 20 3A 20 61 64 64    ld (hl),a  : add
028A80:  20 68 6C 2C 64 65 3A 20 6C 64 20 28 68 6C 29 2C     hl,de: ld (hl),
028A90:  26 35 34 3A 20 61 64 64 20 68 6C 2C 64 65 0D 0A    &54: add hl,de..
028AA0:  20 20 20 20 20 20 20 20 6C 64 20 28 68 6C 29 2C            ld (hl),
028AB0:  61 20 20 3A 20 61 64 64 20 68 6C 2C 64 65 3A 20    a  : add hl,de: 
028AC0:  6C 64 20 28 68 6C 29 2C 26 35 36 3A 20 61 64 64    ld (hl),&56: add
028AD0:  20 68 6C 2C 64 65 0D 0A 20 20 20 20 20 20 20 20     hl,de..        
028AE0:  6C 64 20 28 68 6C 29 2C 26 35 32 3A 20 61 64 64    ld (hl),&52: add
028AF0:  20 68 6C 2C 64 65 3A 20 6C 64 20 28 68 6C 29 2C     hl,de: ld (hl),
028B00:  26 35 38 3A 20 61 64 64 20 68 6C 2C 64 65 0D 0A    &58: add hl,de..
028B10:  20 20 20 20 20 20 20 20 6C 64 20 28 68 6C 29 2C            ld (hl),
028B20:  26 35 31 3A 20 61 64 64 20 68 6C 2C 64 65 3A 20    &51: add hl,de: 
028B30:  6C 64 20 28 68 6C 29 2C 26 34 42 3A 20 61 64 64    ld (hl),&4B: add
028B40:  20 68 6C 2C 64 65 0D 0A 20 20 20 20 20 20 20 20     hl,de..        
028B50:  6C 64 20 28 68 6C 29 2C 26 34 42 3A 20 61 64 64    ld (hl),&4B: add
028B60:  20 68 6C 2C 64 65 3A 20 6C 64 20 28 68 6C 29 2C     hl,de: ld (hl),
028B70:  26 35 31 3A 20 61 64 64 20 68 6C 2C 64 65 0D 0A    &51: add hl,de..
028B80:  20 20 20 20 20 20 20 20 6C 64 20 28 68 6C 29 2C            ld (hl),
028B90:  26 35 38 3A 20 61 64 64 20 68 6C 2C 64 65 3A 20    &58: add hl,de: 
028BA0:  6C 64 20 28 68 6C 29 2C 26 35 32 3A 20 61 64 64    ld (hl),&52: add
028BB0:  20 68 6C 2C 64 65 0D 0A 20 20 20 20 20 20 20 20     hl,de..        
028BC0:  6C 64 20 28 68 6C 29 2C 26 35 36 3A 20 61 64 64    ld (hl),&56: add
028BD0:  20 68 6C 2C 64 65 3A 20 6C 64 20 28 68 6C 29 2C     hl,de: ld (hl),
028BE0:  61 20 20 3A 20 61 64 64 20 68 6C 2C 64 65 0D 0A    a  : add hl,de..
028BF0:  20 20 20 20 20 20 20 20 6C 64 20 28 68 6C 29 2C            ld (hl),
028C00:  6F 70 0D 0A 2E 73 74 61 67 65 32 20 20 6C 64 20    op...stage2  ld 
028C10:  69 78 2C 66 69 6E 61 6C 32 2B 31 36 3A 20 6C 64    ix,final2+16: ld
028C20:  20 62 2C 35 3A 20 6C 64 20 69 79 2C 72 67 72 65     b,5: ld iy,rgre
028C30:  65 6E 3A 20 6A 72 20 72 6D 6C 6F 6F 70 0D 0A 2E    en: jr rmloop...
028C40:  73 74 61 67 65 33 20 20 6C 64 20 69 78 2C 66 69    stage3  ld ix,fi
028C50:  6E 61 6C 33 2B 32 30 3A 20 6C 64 20 62 2C 36 3A    nal3+20: ld b,6:
028C60:  20 6C 64 20 69 79 2C 72 62 6C 75 65 20 3A 20 6A     ld iy,rblue : j
028C70:  72 20 72 6D 6C 6F 6F 70 0D 0A 2E 73 74 61 67 65    r rmloop...stage
028C80:  34 20 20 6C 64 20 69 78 2C 66 69 6E 61 6C 34 2B    4  ld ix,final4+
028C90:  32 30 3A 20 6C 64 20 62 2C 36 3A 20 6C 64 20 69    20: ld b,6: ld i
028CA0:  79 2C 72 72 65 64 0D 0A 0D 0A 2E 72 6D 6C 6F 6F    y,rred.....rmloo
028CB0:  70 20 20 6C 64 20 6C 2C 28 69 78 2B 32 29 3A 20    p  ld l,(ix+2): 
028CC0:  6C 64 20 68 2C 28 69 78 2B 33 29 20 20 3B 47 65    ld h,(ix+3)  ;Ge
028CD0:  74 20 61 64 64 72 65 73 73 20 69 6E 20 74 61 62    t address in tab
028CE0:  6C 65 0D 0A 20 20 20 20 20 20 20 20 20 6C 64 20    le..         ld 
028CF0:  65 2C 28 68 6C 29 3A 20 69 6E 63 20 68 6C 3A 20    e,(hl): inc hl: 
028D00:  6C 64 20 61 2C 65 20 3B 43 6F 6E 76 65 72 74 20    ld a,e ;Convert 
028D10:  69 6E 74 6F 20 73 69 6E 65 20 70 6F 73 69 74 69    into sine positi
028D20:  6F 6E 0D 0A 20 20 20 20 20 20 20 20 20 6C 64 20    on..         ld 
028D30:  64 2C 28 68 6C 29 3A 20 69 6E 63 20 68 6C 3A 20    d,(hl): inc hl: 
028D40:  6F 72 20 64 3A 20 6A 70 20 7A 2C 64 6F 6E 74 69    or d: jp z,donti
028D50:  6E 0D 0A 20 20 20 20 20 20 20 20 20 6C 64 20 28    n..         ld (
028D60:  69 78 2B 32 29 2C 6C 3A 20 6C 64 20 28 69 78 2B    ix+2),l: ld (ix+
028D70:  33 29 2C 68 20 20 3B 53 74 6F 72 65 20 6E 65 77    3),h  ;Store new
028D80:  20 61 64 64 72 65 73 73 20 69 66 20 6E 6F 74 20     address if not 
028D90:  30 0D 0A 0D 0A 2E 64 6F 6E 74 69 6E 20 20 6C 64    0.....dontin  ld
028DA0:  20 61 2C 64 3A 20 63 70 20 34 3A 20 6A 72 20 7A     a,d: cp 4: jr z
028DB0:  2C 64 6F 6E 74 64 72 0D 0A 20 20 20 20 20 20 20    ,dontdr..       
028DC0:  20 20 6C 64 20 6C 2C 28 69 78 2B 30 29 3A 20 6C      ld l,(ix+0): l
028DD0:  64 20 68 2C 28 69 78 2B 31 29 20 20 3B 47 65 74    d h,(ix+1)  ;Get
028DE0:  20 62 61 73 65 20 61 64 64 72 65 73 73 20 61 6E     base address an
028DF0:  64 20 73 75 62 74 72 61 63 74 20 0D 0A 20 20 20    d subtract ..   
028E00:  26 35 34 3A 20 61 64 64 20 68 6C 2C 64 65 3A 20    &54: add hl,de: 
028E10:  6C 64 20 28 68 6C 29 2C 61 20 20 3A 20 72 65 74    ld (hl),a  : ret
028E20:  0D 0A 0D 0A 2E 72 72 65 64 20 20 20 6C 64 20 64    .....rred   ld d
028E30:  65 2C 38 3A 20 6C 64 20 61 2C 26 35 43 3A 20 6C    e,8: ld a,&5C: l
028E40:  64 20 63 2C 26 35 35 0D 0A 20 20 20 20 20 20 20    d c,&55..       
028E50:  20 6C 64 20 28 68 6C 29 2C 63 20 20 3A 20 61 64     ld (hl),c  : ad
028E60:  64 20 68 6C 2C 64 65 3A 20 6C 64 20 28 68 6C 29    d hl,de: ld (hl)
028E70:  2C 63 20 20 3A 20 61 64 64 20 68 6C 2C 64 65 0D    ,c  : add hl,de.
028E80:  0A 20 20 20 20 20 20 20 20 6C 64 20 28 68 6C 29    .        ld (hl)
028E90:  2C 63 20 20 3A 20 61 64 64 20 68 6C 2C 64 65 3A    ,c  : add hl,de:
028EA0:  20 6C 64 20 28 68 6C 29 2C 63 20 20 3A 20 61 64     ld (hl),c  : ad
028EB0:  64 20 68 6C 2C 64 65 0D 0A 20 20 20 20 20 20 20    d hl,de..       
028EC0:  20 6C 64 20 28 68 6C 29 2C 63 20 20 3A 20 61 64     ld (hl),c  : ad
028ED0:  64 20 68 6C 2C 64 65 3A 20 6C 64 20 28 68 6C 29    d hl,de: ld (hl)
028EE0:  2C 63 20 20 3A 20 61 64 64 20 68 6C 2C 64 65 0D    ,c  : add hl,de.
028EF0:  0A 2E 72 72 65 64 6E 20 20 6C 64 20 28 68 6C 29    ..rredn  ld (hl)
028F00:  2C 61 20 20 3A 20 61 64 64 20 68 6C 2C 64 65 3A    ,a  : add hl,de:
028F10:  20 6C 64 20 28 68 6C 29 2C 26 35 34 3A 20 61 64     ld (hl),&54: ad
028F20:  64 20 68 6C 2C 64 65 0D 0A 20 20 20 20 20 20 20    d hl,de..       
028F30:  20 6C 64 20 28 68 6C 29 2C 61 20 20 3A 20 61 64     ld (hl),a  : ad
028F40:  64 20 68 6C 2C 64 65 3A 20 6C 64 20 28 68 6C 29    d hl,de: ld (hl)
028F50:  2C 26 34 43 3A 20 61 64 64 20 68 6C 2C 64 65 0D    ,&4C: add hl,de.
028F60:  0A 20 20 20 20 20 20 20 20 6C 64 20 28 68 6C 29    .        ld (hl)
028F70:  2C 26 34 45 3A 20 61 64 64 20 68 6C 2C 64 65 3A    ,&4E: add hl,de:
028F80:  20 6C 64 20 28 68 6C 29 2C 26 34 41 3A 20 61 64     ld (hl),&4A: ad
028F90:  64 20 68 6C 2C 64 65 0D 0A 20 20 20 20 20 20 20    d hl,de..       
028FA0:  20 6C 64 20 28 68 6C 29 2C 26 34 39 3A 20 61 64     ld (hl),&49: ad
028FB0:  64 20 68 6C 2C 64 65 3A 20 6C 64 20 28 68 6C 29    d hl,de: ld (hl)
028FC0:  2C 26 34 42 3A 20 61 64 64 20 68 6C 2C 64 65 0D    ,&4B: add hl,de.
028FD0:  0A 20 20 20 20 20 20 20 20 6C 64 20 28 68 6C 29    .        ld (hl)
028FE0:  2C 26 34 42 3A 20 61 64 64 20 68 6C 2C 64 65 3A    ,&4B: add hl,de:
028FF0:  20 6C 64 20 28 68 6C 29 2C 26 34 39 3A 20 61 64     ld (hl),&49: ad
029000:  20 20 20 20 20 20 6F 72 20 61 3A 20 73 62 63 20          or a: sbc 
029010:  68 6C 2C 64 65 3A 20 6A 72 20 63 2C 64 6F 6E 74    hl,de: jr c,dont
029020:  64 72 0D 0A 20 20 20 20 20 20 20 20 20 6C 64 20    dr..         ld 
029030:  64 65 2C 63 6F 6C 73 65 72 3A 20 61 64 64 20 68    de,colser: add h
029040:  6C 2C 64 65 0D 0A 20 20 20 20 20 20 20 20 20 63    l,de..         c
029050:  61 6C 6C 20 73 75 62 72 20 20 20 20 20 20 20 20    all subr        
029060:  20 20 20 20 20 20 20 20 20 3B 44 72 61 77 20 72             ;Draw r
029070:  61 73 74 65 72 0D 0A 2E 64 6F 6E 74 64 72 20 20    aster...dontdr  
029080:  6C 64 20 64 65 2C 2D 34 3A 20 61 64 64 20 69 78    ld de,-4: add ix
029090:  2C 64 65 0D 0A 20 20 20 20 20 20 20 20 20 64 6A    ,de..         dj
0290A0:  6E 7A 20 72 6D 6C 6F 6F 70 20 20 20 20 20 20 20    nz rmloop       
0290B0:  20 20 20 20 20 20 20 20 3B 41 6E 64 20 72 65 70            ;And rep
0290C0:  65 61 74 20 66 6F 72 20 61 6C 6C 20 6F 66 20 74    eat for all of t
0290D0:  68 65 6D 0D 0A 0D 0A 20 20 20 20 20 20 20 20 20    hem....         
0290E0:  6C 64 20 61 2C 28 73 74 61 67 65 29 3A 20 63 70    ld a,(stage): cp
0290F0:  20 32 3A 20 6A 72 20 6E 7A 2C 6E 6F 74 32 20 20     2: jr nz,not2  
029100:  20 20 3B 46 69 78 20 66 6F 72 20 32 2F 33 20 6F      ;Fix for 2/3 o
029110:  76 65 72 6C 61 70 0D 0A 20 20 20 20 20 20 20 20    verlap..        
029120:  20 6C 64 20 64 65 2C 38 3A 20 6C 64 20 61 2C 26     ld de,8: ld a,&
029130:  35 43 3A 20 6C 64 20 63 2C 26 35 35 0D 0A 20 20    5C: ld c,&55..  
029140:  20 20 20 20 20 20 20 6C 64 20 68 6C 2C 63 6F 6C           ld hl,col
029150:  73 65 72 2B 34 38 2B 26 33 38 31 3A 20 63 61 6C    ser+48+&381: cal
029160:  6C 20 72 72 65 64 6E 0D 0A 20 20 20 20 20 20 20    l rredn..       
029170:  20 20 6C 64 20 68 6C 2C 63 6F 6C 73 65 72 2B 34      ld hl,colser+4
029180:  38 2B 26 32 30 31 3A 20 63 61 6C 6C 20 72 72 65    8+&201: call rre
029190:  64 6E 0D 0A 0D 0A 2E 6E 6F 74 32 20 20 20 20 6C    dn.....not2    l
0291A0:  64 20 61 2C 28 74 6F 67 6F 29 3A 20 64 65 63 20    d a,(togo): dec 
0291B0:  61 3A 20 6A 72 20 6E 7A 2C 6F 6C 64 67 6F 0D 0A    a: jr nz,oldgo..
0291C0:  20 20 20 20 20 20 20 20 20 6C 64 20 68 6C 2C 73             ld hl,s
0291D0:  74 61 67 65 3A 20 69 6E 63 20 28 68 6C 29 3A 20    tage: inc (hl): 
0291E0:  6C 64 20 61 2C 31 35 30 0D 0A 2E 6F 6C 64 67 6F    ld a,150...oldgo
0291F0:  20 20 20 6C 64 20 28 74 6F 67 6F 29 2C 61 0D 0A       ld (togo),a..
029200:  64 20 68 6C 2C 64 65 0D 0A 20 20 20 20 20 20 20    d hl,de..       
029210:  20 6C 64 20 28 68 6C 29 2C 26 34 41 3A 20 61 64     ld (hl),&4A: ad
029220:  64 20 68 6C 2C 64 65 3A 20 6C 64 20 28 68 6C 29    d hl,de: ld (hl)
029230:  2C 26 34 45 3A 20 61 64 64 20 68 6C 2C 64 65 0D    ,&4E: add hl,de.
029240:  0A 20 20 20 20 20 20 20 20 6C 64 20 28 68 6C 29    .        ld (hl)
029250:  2C 26 34 43 3A 20 61 64 64 20 68 6C 2C 64 65 3A    ,&4C: add hl,de:
029260:  20 6C 64 20 28 68 6C 29 2C 61 20 20 3A 20 61 64     ld (hl),a  : ad
029270:  64 20 68 6C 2C 64 65 0D 0A 20 20 20 20 20 20 20    d hl,de..       
029280:  20 6C 64 20 28 68 6C 29 2C 26 35 34 3A 20 61 64     ld (hl),&54: ad
029290:  64 20 68 6C 2C 64 65 3A 20 6C 64 20 28 68 6C 29    d hl,de: ld (hl)
0292A0:  2C 61 20 20 3A 20 72 65 74 0D 0A 0D 0A 20 20 20    ,a  : ret....   
0292B0:  20 20 20 20 20 3B 2A 2A 2A 20 56 41 52 49 20 20         ;*** VARI  
0292C0:  20 20 20 20 20 20 20 46 69 6E 61 6C 20 70 6F 73           Final pos
0292D0:  69 74 69 6F 6E 20 6F 66 20 72 61 73 74 65 72 73    ition of rasters
0292E0:  0D 0A 0D 0A 2E 66 69 6E 61 6C 31 20 64 77 20 26    .....final1 dw &
0292F0:  32 30 30 2C 73 69 6E 65 65 72 2B 30 20 20 2C 20    200,sineer+0  , 
029300:  26 32 30 31 2C 73 69 6E 65 65 72 2B 30 20 20 0D    &201,sineer+0  .
029310:  0A 20 20 20 20 20 20 20 20 64 77 20 26 32 38 30    .        dw &280
029320:  2C 73 69 6E 65 65 72 2B 33 30 0D 0A 20 20 20 20    ,sineer+30..    
029330:  20 20 20 20 64 77 20 26 33 30 30 2C 73 69 6E 65        dw &300,sine
029340:  65 72 2B 36 30 0D 0A 20 20 20 20 20 20 20 20 64    er+60..        d
029350:  77 20 26 33 38 30 2C 73 69 6E 65 65 72 2B 39 30    w &380,sineer+90
029360:  20 2C 20 26 33 38 31 2C 73 69 6E 65 65 72 2B 39     , &381,sineer+9
029370:  30 0D 0A 0D 0A 2E 66 69 6E 61 6C 32 20 64 77 20    0.....final2 dw 
029380:  26 32 38 31 2C 73 69 6E 65 65 72 2B 33 30 20 2C    &281,sineer+30 ,
029390:  20 26 32 38 32 2C 73 69 6E 65 65 72 2B 33 30 20     &282,sineer+30 
0293A0:  2C 20 26 32 38 33 2C 73 69 6E 65 65 72 2B 33 30    , &283,sineer+30
0293B0:  0D 0A 20 20 20 20 20 20 20 20 64 77 20 26 33 30    ..        dw &30
0293C0:  31 2C 73 69 6E 65 65 72 2B 36 30 0D 0A 20 20 20    1,sineer+60..   
0293D0:  20 20 20 20 20 64 77 20 26 33 38 31 2C 73 69 6E         dw &381,sin
0293E0:  65 65 72 2B 39 30 0D 0A 0D 0A 2E 66 69 6E 61 6C    eer+90.....final
0293F0:  33 20 64 77 20 26 32 30 33 2C 73 69 6E 65 65 72    3 dw &203,sineer
029400:  2E 71 75 69 74 69 74 20 70 6F 70 20 64 65 0D 0A    .quitit pop de..
029410:  0D 0A 20 20 20 20 20 20 20 20 3B 4C 6F 6F 70 20    ..        ;Loop 
029420:  61 6E 64 20 72 65 73 65 74 0D 0A 0D 0A 20 20 20    and reset....   
029430:  20 20 20 20 20 64 65 63 20 64 65 3A 20 6C 64 20         dec de: ld 
029440:  61 2C 64 3A 20 6F 72 20 65 3A 20 6A 70 20 6E 7A    a,d: or e: jp nz
029450:  2C 66 66 0D 0A 0D 0A 20 20 20 20 20 20 20 20 64    ,ff....        d
029460:  69 3A 20 6C 64 20 68 6C 2C 28 73 74 33 38 29 3A    i: ld hl,(st38):
029470:  20 6C 64 20 28 26 33 38 29 2C 68 6C 0D 0A 20 20     ld (&38),hl..  
029480:  20 20 20 20 20 20 65 69 3A 20 63 61 6C 6C 20 26          ei: call &
029490:  42 42 30 36 3A 20 72 65 74 0D 0A 0D 0A 20 20 20    BB06: ret....   
0294A0:  20 20 20 20 20 3B 2A 2A 2A 20 53 55 42 52 20 20         ;*** SUBR  
0294B0:  20 20 20 20 20 20 20 43 41 4C 4C 20 49 59 0D 0A           CALL IY..
0294C0:  0D 0A 2E 73 75 62 72 20 20 20 70 75 73 68 20 69    ...subr   push i
0294D0:  79 3A 20 72 65 74 0D 0A 0D 0A 20 20 20 20 20 20    y: ret....      
0294E0:  20 20 3B 2A 2A 2A 20 53 55 42 52 20 20 20 20 20      ;*** SUBR     
0294F0:  20 20 20 20 50 6F 6B 65 20 72 61 73 74 65 72 73        Poke rasters
029500:  20 69 6E 74 6F 20 70 6F 73 69 74 69 6F 6E 0D 0A     into position..
029510:  0D 0A 2E 72 62 6C 75 65 20 20 6C 64 20 64 65 2C    ...rblue  ld de,
029520:  38 3A 20 6C 64 20 61 2C 26 34 34 3A 20 6C 64 20    8: ld a,&44: ld 
029530:  63 2C 26 35 35 0D 0A 20 20 20 20 20 20 20 20 6C    c,&55..        l
029540:  64 20 28 68 6C 29 2C 63 20 20 3A 20 61 64 64 20    d (hl),c  : add 
029550:  68 6C 2C 64 65 3A 20 6C 64 20 28 68 6C 29 2C 63    hl,de: ld (hl),c
029560:  20 20 3A 20 61 64 64 20 68 6C 2C 64 65 0D 0A 20      : add hl,de.. 
029570:  20 20 20 20 20 20 20 6C 64 20 28 68 6C 29 2C 63           ld (hl),c
029580:  20 20 3A 20 61 64 64 20 68 6C 2C 64 65 3A 20 6C      : add hl,de: l
029590:  64 20 28 68 6C 29 2C 63 20 20 3A 20 61 64 64 20    d (hl),c  : add 
0295A0:  68 6C 2C 64 65 0D 0A 20 20 20 20 20 20 20 20 6C    hl,de..        l
0295B0:  64 20 28 68 6C 29 2C 26 35 35 3A 20 61 64 64 20    d (hl),&55: add 
0295C0:  68 6C 2C 64 65 3A 20 6C 64 20 28 68 6C 29 2C 26    hl,de: ld (hl),&
0295D0:  35 35 3A 20 61 64 64 20 68 6C 2C 64 65 0D 0A 20    55: add hl,de.. 
0295E0:  20 20 20 20 20 20 20 6C 64 20 28 68 6C 29 2C 61           ld (hl),a
0295F0:  20 20 3A 20 61 64 64 20 68 6C 2C 64 65 3A 20 6C      : add hl,de: l
029600:  2B 30 20 20 2C 20 26 32 30 34 2C 73 69 6E 65 65    +0  , &204,sinee
029610:  72 2B 30 20 20 2C 20 26 32 30 35 2C 73 69 6E 65    r+0  , &205,sine
029620:  65 72 2B 30 20 20 0D 0A 20 20 20 20 20 20 20 20    er+0  ..        
029630:  64 77 20 20 20 20 20 20 20 20 20 20 20 20 20 20    dw              
029640:  20 20 20 20 26 32 38 34 2C 73 69 6E 65 65 72 2B        &284,sineer+
029650:  33 30 0D 0A 20 20 20 20 20 20 20 20 64 77 20 20    30..        dw  
029660:  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                    
029670:  26 33 30 34 2C 73 69 6E 65 65 72 2B 36 30 0D 0A    &304,sineer+60..
029680:  20 20 20 20 20 20 20 20 64 77 20 20 20 20 20 20            dw      
029690:  20 20 20 20 20 20 20 20 20 20 20 20 26 33 38 34                &384
0296A0:  2C 73 69 6E 65 65 72 2B 39 30 0D 0A 0D 0A 2E 66    ,sineer+90.....f
0296B0:  69 6E 61 6C 34 20 64 77 20 26 32 30 36 2C 73 69    inal4 dw &206,si
0296C0:  6E 65 65 72 2B 30 20 20 2C 20 26 32 30 37 2C 73    neer+0  , &207,s
0296D0:  69 6E 65 65 72 2B 30 20 20 0D 0A 20 20 20 20 20    ineer+0  ..     
0296E0:  20 20 20 64 77 20 26 32 38 36 2C 73 69 6E 65 65       dw &286,sinee
0296F0:  72 2B 33 30 0D 0A 20 20 20 20 20 20 20 20 64 77    r+30..        dw
029700:  20 26 33 30 36 2C 73 69 6E 65 65 72 2B 36 30 0D     &306,sineer+60.
029710:  0A 20 20 20 20 20 20 20 20 64 77 20 26 33 38 36    .        dw &386
029720:  2C 73 69 6E 65 65 72 2B 39 30 20 2C 20 26 33 38    ,sineer+90 , &38
029730:  37 2C 73 69 6E 65 65 72 2B 39 30 0D 0A 0D 0A 20    7,sineer+90.... 
029740:  20 20 20 20 20 20 20 3B 2A 2A 2A 20 56 41 52 49           ;*** VARI
029750:  20 20 20 20 20 20 20 20 20 43 6F 6C 6F 75 72 73             Colours
029760:  20 66 6F 72 20 72 61 73 74 65 72 73 0D 0A 0D 0A     for rasters....
029770:  20 20 20 20 20 20 20 20 64 73 20 31 32 38 0D 0A            ds 128..
029780:  2E 63 6F 6C 73 65 72 20 64 73 20 34 38 0D 0A 2E    .colser ds 48...
029790:  63 6F 6C 73 70 63 20 64 73 20 31 30 32 34 2C 26    colspc ds 1024,&
0297A0:  35 35 0D 0A 0D 0A 20 20 20 20 20 20 20 20 3B 2A    55....        ;*
0297B0:  2A 2A 20 44 41 54 41 20 20 20 20 20 20 20 20 20    ** DATA         
0297C0:  4D 61 63 69 6E 74 6F 73 68 20 73 70 72 69 74 65    Macintosh sprite
0297D0:  0D 0A 0D 0A 2E 6D 61 63 73 70 72 20 64 62 20 32    .....macspr db 2
0297E0:  35 35 2C 30 2C 30 2C 30 2C 30 2C 30 2C 30 2C 30    55,0,0,0,0,0,0,0
0297F0:  2C 30 2C 30 2C 30 2C 30 2C 30 2C 30 2C 30 2C 30    ,0,0,0,0,0,0,0,0
029800:  64 20 28 68 6C 29 2C 26 35 34 3A 20 61 64 64 20    d (hl),&54: add 
029810:  68 6C 2C 64 65 0D 0A 20 20 20 20 20 20 20 20 6C    hl,de..        l
029820:  64 20 28 68 6C 29 2C 61 20 20 3A 20 61 64 64 20    d (hl),a  : add 
029830:  68 6C 2C 64 65 3A 20 6C 64 20 28 68 6C 29 2C 26    hl,de: ld (hl),&
029840:  35 35 3A 20 61 64 64 20 68 6C 2C 64 65 0D 0A 20    55: add hl,de.. 
029850:  20 20 20 20 20 20 20 6C 64 20 28 68 6C 29 2C 26           ld (hl),&
029860:  35 37 3A 20 61 64 64 20 68 6C 2C 64 65 3A 20 6C    57: add hl,de: l
029870:  64 20 28 68 6C 29 2C 26 35 33 3A 20 61 64 64 20    d (hl),&53: add 
029880:  68 6C 2C 64 65 0D 0A 20 20 20 20 20 20 20 20 6C    hl,de..        l
029890:  64 20 28 68 6C 29 2C 26 35 33 3A 20 61 64 64 20    d (hl),&53: add 
0298A0:  68 6C 2C 64 65 3A 20 6C 64 20 28 68 6C 29 2C 26    hl,de: ld (hl),&
0298B0:  34 42 3A 20 61 64 64 20 68 6C 2C 64 65 0D 0A 20    4B: add hl,de.. 
0298C0:  20 20 20 20 20 20 20 6C 64 20 28 68 6C 29 2C 26           ld (hl),&
0298D0:  34 42 3A 20 61 64 64 20 68 6C 2C 64 65 3A 20 6C    4B: add hl,de: l
0298E0:  64 20 28 68 6C 29 2C 26 35 33 3A 20 61 64 64 20    d (hl),&53: add 
0298F0:  68 6C 2C 64 65 0D 0A 20 20 20 20 20 20 20 20 6C    hl,de..        l
029900:  64 20 28 68 6C 29 2C 26 35 33 3A 20 61 64 64 20    d (hl),&53: add 
029910:  68 6C 2C 64 65 3A 20 6C 64 20 28 68 6C 29 2C 26    hl,de: ld (hl),&
029920:  35 37 3A 20 61 64 64 20 68 6C 2C 64 65 0D 0A 20    57: add hl,de.. 
029930:  20 20 20 20 20 20 20 6C 64 20 28 68 6C 29 2C 26           ld (hl),&
029940:  35 35 3A 20 61 64 64 20 68 6C 2C 64 65 3A 20 6C    55: add hl,de: l
029950:  64 20 28 68 6C 29 2C 61 20 20 3A 20 61 64 64 20    d (hl),a  : add 
029960:  68 6C 2C 64 65 0D 0A 20 20 20 20 20 20 20 20 6C    hl,de..        l
029970:  64 20 28 68 6C 29 2C 26 35 34 3A 20 61 64 64 20    d (hl),&54: add 
029980:  68 6C 2C 64 65 3A 20 6C 64 20 28 68 6C 29 2C 61    hl,de: ld (hl),a
029990:  20 20 3A 20 72 65 74 0D 0A 0D 0A 2E 72 67 72 65      : ret.....rgre
0299A0:  65 6E 20 6C 64 20 64 65 2C 38 3A 20 6C 64 20 61    en ld de,8: ld a
0299B0:  2C 26 34 30 3A 20 6C 64 20 63 2C 26 35 35 0D 0A    ,&40: ld c,&55..
0299C0:  20 20 20 20 20 20 20 20 6C 64 20 28 68 6C 29 2C            ld (hl),
0299D0:  63 20 20 3A 20 61 64 64 20 68 6C 2C 64 65 3A 20    c  : add hl,de: 
0299E0:  6C 64 20 28 68 6C 29 2C 63 20 20 3A 20 61 64 64    ld (hl),c  : add
0299F0:  20 68 6C 2C 64 65 0D 0A 20 20 20 20 20 20 20 20     hl,de..        
029A00:  54 72 61 63 6B 2D 49 6E 66 6F 0D 0A 00 00 00 00    Track-Info......
029A10:  23 00 01 00 02 09 4E E5 23 00 C3 02 00 00 00 02    #.....N.#.......
029A20:  23 00 C8 02 00 00 00 02 23 00 C4 02 00 00 00 02    #.......#.......
029A30:  23 00 C9 02 00 00 00 02 23 00 C5 02 00 00 00 02    #.......#.......
029A40:  23 00 C1 02 00 00 00 02 23 00 C6 02 00 00 00 02    #.......#.......
029A50:  23 00 C2 02 00 00 00 02 23 00 C7 02 00 00 00 02    #.......#.......
029A60:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
029A70:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
029A80:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
029A90:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
029AA0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
029AB0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
029AC0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
029AD0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
029AE0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
029AF0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
029B00:  2C 30 2C 30 2C 30 2C 30 2C 30 2C 30 2C 30 2C 30    ,0,0,0,0,0,0,0,0
029B10:  2C 30 2C 30 2C 30 2C 30 2C 30 2C 30 2C 30 2C 30    ,0,0,0,0,0,0,0,0
029B20:  2C 30 0D 0A 20 20 20 20 20 20 20 20 64 62 20 30    ,0..        db 0
029B30:  2C 30 2C 37 2C 32 35 35 2C 30 2C 30 2C 31 2C 31    ,0,7,255,0,0,1,1
029B40:  39 32 2C 32 33 38 2C 31 32 36 2C 30 2C 30 2C 30    92,238,126,0,0,0
029B50:  2C 31 31 32 2C 33 31 2C 32 32 31 2C 32 34 30 2C    ,112,31,221,240,
029B60:  30 2C 30 2C 30 2C 32 33 31 2C 31 31 35 2C 32 34    0,0,0,231,115,24
029B70:  39 2C 31 39 35 2C 31 32 38 2C 30 2C 30 2C 32 38    9,195,128,0,0,28
029B80:  2C 31 35 2C 32 30 37 2C 32 32 37 2C 32 34 39 2C    ,15,207,227,249,
029B90:  31 39 32 2C 30 2C 31 2C 31 39 32 2C 31 32 37 2C    192,0,1,192,127,
029BA0:  33 31 2C 31 39 39 2C 32 33 31 0D 0A 20 20 20 20    31,199,231..    
029BB0:  20 20 20 20 64 62 20 36 33 2C 35 36 2C 30 2C 30        db 63,56,0,0
029BC0:  2C 30 2C 30 2C 30 2C 30 2C 30 2C 30 2C 30 2C 30    ,0,0,0,0,0,0,0,0
029BD0:  2C 30 2C 30 2C 30 2C 30 2C 30 2C 30 2C 30 2C 30    ,0,0,0,0,0,0,0,0
029BE0:  2C 30 2C 30 2C 30 2C 30 2C 30 2C 30 2C 30 2C 30    ,0,0,0,0,0,0,0,0
029BF0:  2C 30 2C 30 2C 30 2C 31 32 2C 34 38 2C 31 39 35    ,0,0,0,12,48,195
029C00:  2C 30 2C 31 2C 31 37 30 2C 31 37 32 2C 30 2C 31    ,0,1,170,172,0,1
029C10:  0D 0A 20 20 20 20 20 20 20 20 64 62 20 32 35 35    ..        db 255
029C20:  2C 32 35 35 2C 32 35 35 2C 32 35 35 2C 32 35 35    ,255,255,255,255
029C30:  2C 32 35 35 2C 32 35 35 2C 32 35 35 2C 32 35 35    ,255,255,255,255
029C40:  2C 32 35 35 2C 32 35 35 2C 32 35 35 2C 32 35 35    ,255,255,255,255
029C50:  2C 32 35 35 2C 32 35 35 2C 32 35 35 2C 32 35 35    ,255,255,255,255
029C60:  2C 32 35 35 2C 32 35 35 2C 32 35 35 2C 32 35 35    ,255,255,255,255
029C70:  2C 32 35 35 2C 32 35 35 2C 32 35 35 2C 32 35 35    ,255,255,255,255
029C80:  2C 32 35 35 2C 32 35 35 2C 32 35 35 2C 32 35 35    ,255,255,255,255
029C90:  2C 32 35 35 2C 32 35 35 2C 32 35 35 2C 32 35 35    ,255,255,255,255
029CA0:  2C 32 35 35 2C 32 35 35 2C 32 35 35 2C 32 35 35    ,255,255,255,255
029CB0:  2C 32 35 35 2C 32 35 35 2C 32 35 35 0D 0A 20 20    ,255,255,255..  
029CC0:  20 20 20 20 20 20 64 62 20 32 35 35 2C 32 35 35          db 255,255
029CD0:  2C 32 35 35 2C 32 35 35 2C 32 35 35 2C 32 35 35    ,255,255,255,255
029CE0:  2C 32 35 35 2C 32 35 35 2C 32 35 35 2C 32 35 35    ,255,255,255,255
029CF0:  2C 32 35 35 2C 32 35 35 2C 32 35 35 2C 32 35 35    ,255,255,255,255
029D00:  6C 63 6F 6D 65 20 74 6F 20 0D 8A 63 6F 70 79 20    lcome to ..copy 
029D10:  69 74 20 6F 6E 20 61 6E 20 69 6E 64 69 76 69 64    it on an individ
029D20:  75 61 6C 20 62 61 73 69 73 2C 20 79 6F 75 20 73    ual basis, you s
029D30:  68 6F 75 6C 64 20 63 6F 70 79 20 74 68 65 20 77    hould copy the w
029D40:  68 6F 6C 65 20 64 69 73 63 20 72 61 74 68 65 72    hole disc rather
029D50:  20 0D 8A 74 68 61 6E 20 6A 75 73 74 20 69 6E 64     ..than just ind
029D60:  69 76 69 64 75 61 6C 20 66 69 6C 65 73 2E 0D 0A    ividual files...
029D70:  0D 0A 48 61 70 70 79 20 68 61 63 6B 69 6E 67 21    ..Happy hacking!
029D80:  0D 0A 0D 0A 52 69 63 68 61 72 64 20 46 61 69 72    ....Richard Fair
029D90:  68 75 72 73 74 0D 0A 4F 63 74 6F 62 65 72 20 31    hurst..October 1
029DA0:  39 39 37 0D 0A 0D 0A 43 52 54 43 2F 53 79 73 74    997....CRTC/Syst
029DB0:  65 6D 65 20 44 2C 20 54 65 61 20 43 6F 74 74 61    eme D, Tea Cotta
029DC0:  67 65 2C 20 42 6F 74 74 6F 6D 20 4C 61 6E 65 2C    ge, Bottom Lane,
029DD0:  20 42 69 73 62 72 6F 6F 6B 65 2C 20 52 75 74 6C     Bisbrooke, Rutl
029DE0:  61 6E 64 20 4C 45 31 35 20 39 45 4A 0D 0A 0D 0A    and LE15 9EJ....
029DF0:  0D 0A 0D 0A 53 6F 75 72 63 65 20 63 6F 64 65 20    ....Source code 
029E00:  66 69 6C 65 73 20 6F 6E 20 73 69 64 65 20 41 0D    files on side A.
029E10:  0A 0D 0A 49 4D 41 47 45 20 20 20 2E 53 52 43 09    ...IMAGE   .SRC.
029E20:  49 6D 61 67 65 50 72 69 6E 74 20 2D 20 70 72 69    ImagePrint - pri
029E30:  6E 74 65 72 20 6F 75 74 70 75 74 20 65 6E 68 61    nter output enha
029E40:  6E 63 65 72 0D 0A 4D 41 43 42 55 47 53 20 2E 53    ncer..MACBUGS .S
029E50:  52 43 09 4D 61 63 42 75 67 73 20 2D 20 6D 65 65    RC.MacBugs - mee
029E60:  74 69 6E 67 20 64 65 6D 6F 0D 0A 4F 52 47 41 4E    ting demo..ORGAN
029E70:  49 53 45 2E 53 52 43 09 44 65 73 6B 74 6F 70 20    ISE.SRC.Desktop 
029E80:  4F 72 67 61 6E 69 73 65 20 2D 20 64 69 73 63 20    Organise - disc 
029E90:  63 61 74 61 6C 6F 67 75 69 6E 67 20 73 79 73 74    cataloguing syst
029EA0:  65 6D 20 66 6F 72 20 44 45 53 0D 0A 50 4C 55 53    em for DES..PLUS
029EB0:  38 42 49 54 2E 53 52 43 09 50 61 74 63 68 20 74    8BIT.SRC.Patch t
029EC0:  6F 20 65 6E 61 62 6C 65 20 43 50 43 20 50 6C 75    o enable CPC Plu
029ED0:  73 20 38 2D 62 69 74 20 70 72 69 6E 74 65 72 20    s 8-bit printer 
029EE0:  70 6F 72 74 0D 0A 53 44 4F 53 31 20 20 20 2E 53    port..SDOS1   .S
029EF0:  52 43 09 53 2D 44 4F 53 20 76 31 20 2D 20 73 69    RC.S-DOS v1 - si
029F00:  2C 32 35 35 2C 32 35 35 2C 32 35 35 2C 32 35 35    ,255,255,255,255
029F10:  2C 32 35 35 2C 32 35 35 2C 32 35 35 2C 32 35 35    ,255,255,255,255
029F20:  2C 32 35 35 2C 32 35 35 2C 32 35 35 2C 32 35 35    ,255,255,255,255
029F30:  2C 32 35 35 2C 32 35 35 2C 32 35 35 2C 32 35 35    ,255,255,255,255
029F40:  2C 32 35 35 2C 32 35 35 2C 32 35 35 2C 32 35 35    ,255,255,255,255
029F50:  2C 32 35 35 2C 32 35 35 2C 32 35 35 2C 32 35 35    ,255,255,255,255
029F60:  2C 32 35 35 2C 32 35 35 0D 0A 20 20 20 20 20 20    ,255,255..      
029F70:  20 20 64 62 20 30 2C 30 2C 31 35 2C 32 35 32 2C      db 0,0,15,252,
029F80:  30 2C 30 2C 31 2C 32 34 38 2C 32 33 38 2C 32 33    0,0,1,248,238,23
029F90:  31 2C 30 2C 30 2C 30 2C 31 32 36 2C 35 37 2C 32    1,0,0,0,126,57,2
029FA0:  32 30 2C 32 32 34 2C 30 2C 30 2C 30 2C 32 33 31    20,224,0,0,0,231
029FB0:  2C 31 31 39 2C 32 39 2C 31 39 35 2C 31 32 38 2C    ,119,29,195,128,
029FC0:  30 2C 30 2C 32 38 2C 30 2C 32 33 38 2C 31 31 39    0,0,28,0,238,119
029FD0:  2C 32 39 2C 31 39 32 2C 30 2C 30 2C 32 35 34 2C    ,29,192,0,0,254,
029FE0:  31 31 35 2C 31 38 34 2C 32 33 38 2C 31 31 39 0D    115,184,238,119.
029FF0:  0A 20 20 20 20 20 20 20 20 64 62 20 33 2C 31 38    .        db 3,18
02A000:  34 2C 30 2C 30 2C 30 2C 30 2C 30 2C 30 2C 30 2C    4,0,0,0,0,0,0,0,
02A010:  30 2C 30 2C 30 2C 30 2C 30 2C 30 2C 30 2C 30 2C    0,0,0,0,0,0,0,0,
02A020:  30 2C 30 2C 30 2C 30 2C 30 2C 30 2C 30 2C 30 2C    0,0,0,0,0,0,0,0,
02A030:  30 2C 30 2C 30 2C 30 2C 30 2C 30 2C 31 32 2C 37    0,0,0,0,0,0,12,7
02A040:  2C 31 33 31 2C 30 2C 31 2C 31 34 39 2C 37 36 2C    ,131,0,1,149,76,
02A050:  30 2C 30 0D 0A 20 20 20 20 20 20 20 20 64 62 20    0,0..        db 
02A060:  30 2C 30 2C 30 2C 30 2C 30 2C 30 2C 30 2C 30 2C    0,0,0,0,0,0,0,0,
02A070:  30 2C 30 2C 30 2C 30 2C 30 2C 30 2C 30 2C 30 2C    0,0,0,0,0,0,0,0,
02A080:  30 2C 30 2C 30 2C 30 2C 30 2C 30 2C 30 2C 30 2C    0,0,0,0,0,0,0,0,
02A090:  30 2C 30 2C 30 2C 30 2C 30 2C 30 2C 30 2C 30 2C    0,0,0,0,0,0,0,0,
02A0A0:  30 2C 30 2C 30 2C 30 2C 30 2C 30 2C 30 2C 30 0D    0,0,0,0,0,0,0,0.
02A0B0:  0A 20 20 20 20 20 20 20 20 64 62 20 30 2C 30 2C    .        db 0,0,
02A0C0:  30 2C 30 2C 30 2C 30 2C 30 2C 30 2C 30 2C 30 2C    0,0,0,0,0,0,0,0,
02A0D0:  30 2C 30 2C 30 2C 30 2C 30 2C 30 2C 30 2C 30 2C    0,0,0,0,0,0,0,0,
02A0E0:  30 2C 30 2C 30 2C 30 2C 30 2C 30 2C 30 2C 30 2C    0,0,0,0,0,0,0,0,
02A0F0:  30 2C 30 2C 30 2C 30 2C 30 2C 30 2C 30 2C 30 2C    0,0,0,0,0,0,0,0,
02A100:  6D 70 6C 65 20 44 4F 53 20 28 63 6F 2D 77 72 69    mple DOS (co-wri
02A110:  74 74 65 6E 20 62 79 20 52 6F 62 20 53 63 6F 74    tten by Rob Scot
02A120:  74 29 0D 0A 53 50 45 4C 4C 20 20 20 2E 53 52 43    t)..SPELL   .SRC
02A130:  09 50 6F 77 65 72 53 70 65 6C 6C 20 2D 20 75 73    .PowerSpell - us
02A140:  65 72 2D 66 72 69 65 6E 64 6C 79 20 73 70 65 6C    er-friendly spel
02A150:  6C 2D 63 68 65 63 6B 65 72 0D 0A 54 41 4D 53 49    l-checker..TAMSI
02A160:  4E 20 20 2E 53 52 43 09 42 54 4C 20 33 20 69 6E    N  .SRC.BTL 3 in
02A170:  74 72 6F 20 2D 20 74 68 65 20 6F 6E 65 20 77 69    tro - the one wi
02A180:  74 68 20 54 61 6D 73 69 6E 20 74 68 65 20 57 6F    th Tamsin the Wo
02A190:  6E 64 65 72 20 43 61 74 0D 0A 54 45 58 54 52 45    nder Cat..TEXTRE
02A1A0:  41 44 2E 53 52 43 09 45 75 72 6F 57 41 43 43 49    AD.SRC.EuroWACCI
02A1B0:  20 74 65 78 74 20 72 65 61 64 65 72 20 28 73 65     text reader (se
02A1C0:  65 20 2E 44 4F 43 20 66 69 6C 65 29 0D 0A 54 4F    e .DOC file)..TO
02A1D0:  4F 4C 4B 49 54 20 2E 53 52 43 09 41 41 20 54 6F    OLKIT .SRC.AA To
02A1E0:  6F 6C 6B 69 74 20 2D 20 63 6F 6C 6C 65 63 74 69    olkit - collecti
02A1F0:  6F 6E 20 6F 66 20 52 53 58 73 0D 0A 0D 0A 53 6F    on of RSXs....So
02A200:  75 72 63 65 20 63 6F 64 65 20 66 69 6C 65 73 20    urce code files 
02A210:  6F 6E 20 73 69 64 65 20 42 2C 20 75 73 65 72 20    on side B, user 
02A220:  61 72 65 61 20 31 0D 0A 0D 0A 50 52 4F 2D 45 58    area 1....PRO-EX
02A230:  54 20 2E 53 52 43 09 50 72 6F 2D 45 78 74 20 76    T .SRC.Pro-Ext v
02A240:  31 2E 35 20 20 20 20 20 20 20 20 2D 20 6D 61 69    1.5        - mai
02A250:  6E 20 70 72 6F 67 72 61 6D 0D 0A 45 44 49 54 20    n program..EDIT 
02A260:  20 20 20 2E 53 52 43 09 09 09 20 20 20 20 20 20       .SRC...      
02A270:  66 6F 6E 74 20 65 64 69 74 6F 72 20 52 53 58 73    font editor RSXs
02A280:  0D 0A 47 52 41 50 48 49 43 53 2E 53 52 43 09 09    ..GRAPHICS.SRC..
02A290:  09 20 20 20 20 20 20 67 72 61 70 68 69 63 20 63    .      graphic c
02A2A0:  6F 6E 76 65 72 73 69 6F 6E 20 52 53 58 73 0D 0A    onversion RSXs..
02A2B0:  0D 0A 43 4F 4D 4D 53 20 20 20 2E 53 52 43 09 43    ..COMMS   .SRC.C
02A2C0:  68 61 72 6C 65 79 27 73 20 43 6F 6D 6D 73 20 52    harley's Comms R
02A2D0:  4F 4D 20 2D 20 6D 61 69 6E 20 70 72 6F 67 72 61    OM - main progra
02A2E0:  6D 0D 0A 42 42 53 20 20 20 20 20 2E 4D 4F 44 09    m..BBS     .MOD.
02A2F0:  09 09 20 20 20 20 20 20 62 75 6C 6C 65 74 69 6E    ..      bulletin
02A300:  30 2C 30 2C 30 2C 30 2C 30 2C 30 0D 0A 20 20 20    0,0,0,0,0,0..   
02A310:  20 20 20 20 20 64 62 20 30 2C 30 2C 31 35 2C 32         db 0,0,15,2
02A320:  35 32 2C 30 2C 30 2C 31 2C 31 39 32 2C 32 33 38    52,0,0,1,192,238
02A330:  2C 32 35 35 2C 30 2C 30 2C 30 2C 31 31 32 2C 35    ,255,0,0,0,112,5
02A340:  37 2C 32 32 30 2C 32 32 34 2C 30 2C 30 2C 30 2C    7,220,224,0,0,0,
02A350:  32 33 31 2C 31 31 39 2C 32 35 33 2C 32 31 39 2C    231,119,253,219,
02A360:  31 32 38 2C 30 2C 30 2C 32 38 2C 31 35 2C 32 33    128,0,0,28,15,23
02A370:  38 2C 31 31 39 2C 32 35 33 2C 31 39 32 2C 30 2C    8,119,253,192,0,
02A380:  30 2C 37 2C 31 31 35 2C 31 39 31 2C 32 33 38 2C    0,7,115,191,238,
02A390:  37 0D 0A 20 20 20 20 20 20 20 20 64 62 20 36 33    7..        db 63
02A3A0:  2C 31 38 34 2C 30 2C 30 2C 30 2C 30 2C 30 2C 30    ,184,0,0,0,0,0,0
02A3B0:  2C 30 2C 30 2C 30 2C 30 2C 30 2C 30 2C 30 2C 30    ,0,0,0,0,0,0,0,0
02A3C0:  2C 30 2C 30 2C 30 2C 30 2C 30 2C 30 2C 30 2C 30    ,0,0,0,0,0,0,0,0
02A3D0:  2C 30 2C 30 2C 30 2C 30 2C 30 2C 30 2C 30 2C 31    ,0,0,0,0,0,0,0,1
02A3E0:  32 2C 30 2C 33 2C 30 2C 31 2C 31 37 30 2C 31 37    2,0,3,0,1,170,17
02A3F0:  32 2C 30 2C 30 0D 0A 20 20 20 20 20 20 20 20 64    2,0,0..        d
02A400:  62 20 30 2C 30 2C 30 2C 30 2C 30 2C 30 2C 30 2C    b 0,0,0,0,0,0,0,
02A410:  30 2C 30 2C 30 2C 30 2C 30 2C 30 2C 30 2C 30 2C    0,0,0,0,0,0,0,0,
02A420:  30 2C 30 2C 30 2C 30 2C 30 2C 30 2C 30 2C 30 2C    0,0,0,0,0,0,0,0,
02A430:  30 2C 30 2C 30 2C 30 2C 30 2C 30 2C 30 2C 30 2C    0,0,0,0,0,0,0,0,
02A440:  30 2C 30 2C 30 2C 30 2C 30 2C 30 2C 30 2C 30 2C    0,0,0,0,0,0,0,0,
02A450:  30 0D 0A 20 20 20 20 20 20 20 20 64 62 20 30 2C    0..        db 0,
02A460:  30 2C 30 2C 30 2C 30 2C 30 2C 30 2C 30 2C 30 2C    0,0,0,0,0,0,0,0,
02A470:  30 2C 30 2C 30 2C 30 2C 30 2C 30 2C 30 2C 30 2C    0,0,0,0,0,0,0,0,
02A480:  30 2C 30 2C 30 2C 30 2C 30 2C 30 2C 30 2C 30 2C    0,0,0,0,0,0,0,0,
02A490:  30 2C 30 2C 30 2C 30 2C 30 2C 30 2C 30 2C 30 2C    0,0,0,0,0,0,0,0,
02A4A0:  30 2C 30 2C 30 2C 30 2C 30 2C 30 2C 30 0D 0A 20    0,0,0,0,0,0,0.. 
02A4B0:  20 20 20 20 20 20 20 64 62 20 30 2C 30 2C 31 35           db 0,0,15
02A4C0:  2C 32 35 35 2C 30 2C 30 2C 31 2C 31 39 32 2C 32    ,255,0,0,1,192,2
02A4D0:  33 38 2C 32 32 34 2C 30 2C 30 2C 30 2C 31 31 32    38,224,0,0,0,112
02A4E0:  2C 35 37 2C 32 32 30 2C 32 32 34 2C 30 2C 30 2C    ,57,220,224,0,0,
02A4F0:  30 2C 31 32 36 2C 31 31 39 2C 31 2C 32 35 35 2C    0,126,119,1,255,
02A500:  30 2C 30 2C 30 2C 30 2C 30 2C 30 2C 30 2C 30 2C    0,0,0,0,0,0,0,0,
02A510:  30 2C 30 2C 30 2C 30 2C 30 2C 30 2C 30 2C 30 2C    0,0,0,0,0,0,0,0,
02A520:  30 2C 30 2C 31 2C 32 35 35 2C 32 34 38 2C 30 2C    0,0,1,255,248,0,
02A530:  31 2C 32 35 35 2C 32 35 32 2C 30 2C 33 31 0D 0A    1,255,252,0,31..
02A540:  20 20 20 20 20 20 20 20 64 62 20 30 2C 30 2C 31            db 0,0,1
02A550:  2C 32 30 34 2C 30 2C 30 2C 30 2C 30 2C 30 2C 30    ,204,0,0,0,0,0,0
02A560:  2C 30 2C 30 2C 30 2C 30 2C 30 2C 30 2C 30 2C 30    ,0,0,0,0,0,0,0,0
02A570:  2C 30 2C 30 2C 30 2C 30 2C 30 2C 30 2C 30 2C 30    ,0,0,0,0,0,0,0,0
02A580:  2C 30 2C 30 2C 30 2C 30 2C 30 2C 30 2C 30 2C 30    ,0,0,0,0,0,0,0,0
02A590:  2C 30 2C 30 2C 31 31 32 2C 30 2C 30 2C 30 0D 0A    ,0,0,112,0,0,0..
02A5A0:  20 20 20 20 20 20 20 20 64 62 20 30 2C 30 2C 30            db 0,0,0
02A5B0:  2C 30 2C 30 2C 30 2C 30 2C 30 2C 30 2C 30 2C 30    ,0,0,0,0,0,0,0,0
02A5C0:  2C 30 2C 30 2C 30 2C 30 2C 30 2C 30 2C 30 2C 30    ,0,0,0,0,0,0,0,0
02A5D0:  2C 30 2C 30 2C 30 2C 30 2C 30 2C 30 2C 30 2C 30    ,0,0,0,0,0,0,0,0
02A5E0:  2C 30 2C 30 2C 30 2C 30 2C 31 2C 32 35 30 2C 32    ,0,0,0,0,1,250,2
02A5F0:  35 32 2C 30 2C 31 2C 31 32 38 2C 31 32 2C 30 2C    52,0,1,128,12,0,
02A600:  30 0D 0A 20 20 20 20 20 20 20 20 64 62 20 31 32    0..        db 12
02A610:  38 2C 30 2C 30 2C 39 36 2C 30 2C 30 2C 31 2C 32    8,0,0,96,0,0,1,2
02A620:  35 34 2C 32 33 38 2C 30 2C 30 2C 30 2C 30 2C 31    54,238,0,0,0,0,1
02A630:  32 37 2C 31 32 39 2C 32 32 30 2C 32 32 34 2C 30    27,129,220,224,0
02A640:  2C 30 2C 30 2C 32 33 31 2C 31 31 32 2C 30 2C 30    ,0,0,231,112,0,0
02A650:  2C 30 2C 30 2C 30 2C 32 38 2C 30 2C 31 34 2C 30    ,0,0,0,28,0,14,0
02A660:  2C 31 2C 31 39 32 2C 30 2C 30 2C 32 35 34 2C 30    ,1,192,0,0,254,0
02A670:  2C 30 2C 30 2C 37 0D 0A 20 20 20 20 20 20 20 20    ,0,0,7..        
02A680:  64 62 20 30 2C 35 36 2C 30 2C 30 2C 30 2C 30 2C    db 0,56,0,0,0,0,
02A690:  30 2C 30 2C 30 2C 30 2C 30 2C 30 2C 30 2C 30 2C    0,0,0,0,0,0,0,0,
02A6A0:  30 2C 30 2C 30 2C 30 2C 30 2C 30 2C 30 2C 30 2C    0,0,0,0,0,0,0,0,
02A6B0:  30 2C 30 2C 30 2C 30 2C 30 2C 30 2C 30 2C 30 2C    0,0,0,0,0,0,0,0,
02A6C0:  30 2C 37 2C 30 2C 31 34 2C 30 2C 31 2C 31 32 38    0,7,0,14,0,1,128
02A6D0:  2C 31 32 2C 30 2C 37 0D 0A 20 20 20 20 20 20 20    ,12,0,7..       
02A6E0:  20 64 62 20 30 2C 30 2C 30 2C 30 2C 30 2C 30 2C     db 0,0,0,0,0,0,
02A6F0:  30 2C 30 2C 30 2C 30 2C 30 2C 30 2C 30 2C 30 2C    0,0,0,0,0,0,0,0,
02A700:  31 32 38 2C 30 2C 30 2C 32 38 2C 32 38 2C 32 33    128,0,0,28,28,23
02A710:  38 2C 31 31 39 2C 31 2C 31 39 32 2C 30 2C 30 2C    8,119,1,192,0,0,
02A720:  37 2C 31 31 35 2C 31 38 34 2C 31 34 2C 31 31 39    7,115,184,14,119
02A730:  0D 0A 20 20 20 20 20 20 20 20 64 62 20 31 31 35    ..        db 115
02A740:  2C 31 38 34 2C 30 2C 30 2C 30 2C 30 2C 30 2C 30    ,184,0,0,0,0,0,0
02A750:  2C 30 2C 30 2C 30 2C 30 2C 30 2C 30 2C 30 2C 30    ,0,0,0,0,0,0,0,0
02A760:  2C 30 2C 30 2C 30 2C 30 2C 30 2C 30 2C 30 2C 30    ,0,0,0,0,0,0,0,0
02A770:  2C 30 2C 30 2C 30 2C 30 2C 30 2C 30 2C 30 2C 31    ,0,0,0,0,0,0,0,1
02A780:  32 2C 36 2C 33 2C 30 2C 31 2C 31 32 38 2C 31 32    2,6,3,0,1,128,12
02A790:  2C 30 2C 30 0D 0A 20 20 20 20 20 20 20 20 64 62    ,0,0..        db
02A7A0:  20 30 2C 30 2C 30 2C 30 2C 30 2C 30 2C 30 2C 30     0,0,0,0,0,0,0,0
02A7B0:  2C 30 2C 30 2C 30 2C 30 2C 30 2C 30 2C 30 2C 30    ,0,0,0,0,0,0,0,0
02A7C0:  2C 30 2C 30 2C 30 2C 30 2C 30 2C 30 2C 30 2C 30    ,0,0,0,0,0,0,0,0
02A7D0:  2C 30 2C 30 2C 30 2C 30 2C 30 2C 30 2C 30 2C 30    ,0,0,0,0,0,0,0,0
02A7E0:  2C 30 2C 30 2C 30 2C 30 2C 30 2C 30 2C 30 2C 30    ,0,0,0,0,0,0,0,0
02A7F0:  0D 0A 20 20 20 20 20 20 20 20 64 62 20 30 2C 30    ..        db 0,0
02A800:  2C 30 2C 30 2C 30 2C 30 2C 30 2C 30 2C 30 2C 30    ,0,0,0,0,0,0,0,0
02A810:  2C 30 2C 30 2C 30 2C 30 2C 30 2C 30 2C 30 2C 30    ,0,0,0,0,0,0,0,0
02A820:  2C 30 2C 30 2C 30 2C 30 2C 30 2C 30 2C 30 2C 30    ,0,0,0,0,0,0,0,0
02A830:  2C 30 2C 30 2C 30 2C 30 2C 30 2C 30 2C 30 2C 30    ,0,0,0,0,0,0,0,0
02A840:  2C 30 2C 30 2C 30 2C 30 2C 30 2C 30 0D 0A 0D 0A    ,0,0,0,0,0,0....
02A850:  20 20 20 20 20 20 20 20 3B 2A 2A 2A 20 44 41 54            ;*** DAT
02A860:  41 20 20 20 20 20 20 20 20 20 53 69 6E 65 20 6D    A         Sine m
02A870:  6F 74 69 6F 6E 0D 0A 0D 0A 2E 73 69 6E 65 65 72    otion.....sineer
02A880:  20 64 73 20 31 34 34 2C 34 0D 0A 2E 73 69 6E 65     ds 144,4...sine
02A890:  74 62 20 64 77 20 31 30 30 30 2C 31 30 30 30 2C    tb dw 1000,1000,
02A8A0:  31 30 30 30 2C 31 30 30 30 2C 39 39 32 2C 39 39    1000,1000,992,99
02A8B0:  32 2C 39 38 34 2C 39 37 36 2C 39 36 38 2C 39 35    2,984,976,968,95
02A8C0:  32 2C 39 34 34 2C 39 32 38 2C 39 32 30 2C 39 30    2,944,928,920,90
02A8D0:  34 2C 38 38 38 2C 38 37 32 0D 0A 20 20 20 20 20    4,888,872..     
02A8E0:  20 20 20 64 77 20 38 34 38 2C 38 33 32 2C 38 30       dw 848,832,80
02A8F0:  38 2C 37 39 32 2C 37 36 38 2C 37 34 34 2C 37 32    8,792,768,744,72
02A900:  30 2C 30 2C 30 2C 30 2C 30 2C 30 2C 30 2C 30 2C    0,0,0,0,0,0,0,0,
02A910:  30 2C 30 2C 30 2C 30 2C 30 2C 30 2C 30 2C 30 2C    0,0,0,0,0,0,0,0,
02A920:  30 2C 30 2C 30 2C 30 2C 30 2C 30 2C 31 31 32 2C    0,0,0,0,0,0,112,
02A930:  30 2C 30 2C 30 0D 0A 20 20 20 20 20 20 20 20 64    0,0,0..        d
02A940:  62 20 30 2C 30 2C 30 2C 30 2C 30 2C 30 2C 30 2C    b 0,0,0,0,0,0,0,
02A950:  30 2C 30 2C 30 2C 30 2C 30 2C 30 2C 30 2C 30 2C    0,0,0,0,0,0,0,0,
02A960:  30 2C 30 2C 30 2C 30 2C 30 2C 30 2C 30 2C 30 2C    0,0,0,0,0,0,0,0,
02A970:  30 2C 30 2C 30 2C 30 2C 30 2C 30 2C 30 2C 30 2C    0,0,0,0,0,0,0,0,
02A980:  30 2C 37 2C 30 2C 30 2C 30 2C 31 32 37 2C 32 34    0,7,0,0,0,127,24
02A990:  30 2C 30 2C 30 0D 0A 20 20 20 20 20 20 20 20 64    0,0,0..        d
02A9A0:  62 20 31 32 38 2C 30 2C 33 2C 31 34 32 2C 30 2C    b 128,0,3,142,0,
02A9B0:  30 2C 31 2C 31 39 32 2C 31 34 2C 30 2C 30 2C 30    0,1,192,14,0,0,0
02A9C0:  2C 30 2C 31 31 32 2C 31 2C 31 39 32 2C 32 32 34    ,0,112,1,192,224
02A9D0:  2C 30 2C 30 2C 30 2C 32 33 31 2C 30 2C 30 2C 30    ,0,0,0,231,0,0,0
02A9E0:  2C 30 2C 30 2C 30 2C 32 38 2C 30 2C 31 34 2C 30    ,0,0,0,28,0,14,0
02A9F0:  2C 31 2C 31 39 32 2C 30 2C 31 2C 31 39 32 2C 30    ,1,192,0,1,192,0
02AA00:  2C 30 2C 30 2C 30 0D 0A 20 20 20 20 20 20 20 20    ,0,0,0..        
02AA10:  64 62 20 30 2C 35 36 2C 30 2C 30 2C 30 2C 30 2C    db 0,56,0,0,0,0,
02AA20:  30 2C 30 2C 30 2C 30 2C 30 2C 30 2C 30 2C 30 2C    0,0,0,0,0,0,0,0,
02AA30:  30 2C 30 2C 30 2C 30 2C 30 2C 30 2C 30 2C 30 2C    0,0,0,0,0,0,0,0,
02AA40:  30 2C 30 2C 30 2C 30 2C 30 2C 30 2C 30 2C 30 2C    0,0,0,0,0,0,0,0,
02AA50:  30 2C 31 32 2C 33 31 2C 31 33 31 2C 30 2C 31 2C    0,12,31,131,0,1,
02AA60:  31 34 39 2C 37 36 2C 30 2C 31 0D 0A 20 20 20 20    149,76,0,1..    
02AA70:  20 20 20 20 64 62 20 30 2C 30 2C 30 2C 30 2C 30        db 0,0,0,0,0
02AA80:  2C 30 2C 30 2C 30 2C 30 2C 30 2C 30 2C 30 2C 30    ,0,0,0,0,0,0,0,0
02AA90:  2C 30 2C 30 2C 30 2C 30 2C 30 2C 30 2C 30 2C 30    ,0,0,0,0,0,0,0,0
02AAA0:  2C 30 2C 30 2C 30 2C 30 2C 30 2C 30 2C 30 2C 30    ,0,0,0,0,0,0,0,0
02AAB0:  2C 30 2C 30 2C 30 2C 30 2C 30 2C 30 2C 30 2C 30    ,0,0,0,0,0,0,0,0
02AAC0:  2C 30 2C 30 2C 30 0D 0A 20 20 20 20 20 20 20 20    ,0,0,0..        
02AAD0:  64 62 20 30 2C 30 2C 30 2C 30 2C 30 2C 30 2C 30    db 0,0,0,0,0,0,0
02AAE0:  2C 30 2C 30 2C 30 2C 30 2C 30 2C 30 2C 30 2C 30    ,0,0,0,0,0,0,0,0
02AAF0:  2C 30 2C 30 2C 30 2C 30 2C 30 2C 30 2C 30 2C 30    ,0,0,0,0,0,0,0,0
02AB00:  30 2C 36 39 36 2C 36 37 32 2C 36 34 30 2C 36 31    0,696,672,640,61
02AB10:  36 2C 35 39 32 2C 35 36 30 2C 35 32 38 2C 35 30    6,592,560,528,50
02AB20:  34 2C 34 37 32 2C 34 34 30 0D 0A 20 20 20 20 20    4,472,440..     
02AB30:  20 20 20 64 77 20 34 30 38 2C 33 37 36 2C 33 34       dw 408,376,34
02AB40:  34 2C 33 30 34 2C 32 37 32 2C 32 34 30 2C 32 30    4,304,272,240,20
02AB50:  38 2C 31 36 38 2C 31 33 36 2C 31 30 34 2C 36 34    8,168,136,104,64
02AB60:  2C 33 32 2C 30 2C 30 0D 0A 0D 0A 20 20 20 20 20    ,32,0,0....     
02AB70:  20 20 20 3B 2A 2A 2A 20 56 41 52 49 20 20 20 20       ;*** VARI    
02AB80:  20 20 20 20 20 4D 69 73 63 65 6C 6C 61 6E 65 6F         Miscellaneo
02AB90:  75 73 0D 0A 0D 0A 2E 73 74 61 67 65 20 20 64 62    us.....stage  db
02ABA0:  20 31 20 20 20 20 20 20 20 20 20 20 20 20 20 20     1              
02ABB0:  3B 4C 65 74 74 65 72 20 28 31 2D 34 29 0D 0A 2E    ;Letter (1-4)...
02ABC0:  74 6F 67 6F 20 20 20 64 62 20 31 35 30 20 20 20    togo   db 150   
02ABD0:  20 20 20 20 20 20 20 20 20 3B 4E 75 6D 62 65 72             ;Number
02ABE0:  20 6F 66 20 70 6F 73 69 74 69 6F 6E 73 20 74 6F     of positions to
02ABF0:  20 67 6F 0D 0A 2E 73 74 33 38 20 20 20 64 77 20     go...st38   dw 
02AC00:  30 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3B    0              ;
02AC10:  53 74 6F 72 65 20 66 6F 72 20 52 53 54 20 33 38    Store for RST 38
02AC20:  0D 0A 1A 31 39 39 35 20 43 52 54 43 2F 53 79 73    ...1995 CRTC/Sys
02AC30:  74 65 6D 65 20 44 0D 0A 0D 0A 6F 72 67 20 26 35    teme D....org &5
02AC40:  30 30 30 0D 0A 6E 6F 6C 69 73 74 0D 0A 6C 69 6D    000..nolist..lim
02AC50:  69 74 20 26 36 37 30 30 0D 0A 0D 0A 20 20 20 20    it &6700....    
02AC60:  20 20 20 20 3B 53 63 72 65 65 6E 20 73 65 74 75        ;Screen setu
02AC70:  70 0D 0A 0D 0A 20 20 20 20 20 20 20 20 6C 64 20    p....        ld 
02AC80:  20 64 73 20 31 34 34 2C 34 0D 0A 2E 73 69 6E 65     ds 144,4...sine
02AC90:  74 62 20 64 77 20 31 30 30 30 2C 31 30 30 30 2C    tb dw 1000,1000,
02ACA0:  31 30 30 30 2C 31 30 30 30 2C 39 39 32 2C 39 39    1000,1000,992,99
02ACB0:  32 2C 39 38 34 2C 39 37 36 2C 39 36 38 2C 39 35    2,984,976,968,95
02ACC0:  32 2C 39 34 34 2C 39 32 38 2C 39 32 30 2C 39 30    2,944,928,920,90
02ACD0:  34 2C 38 38 38 2C 38 37 32 0D 0A 20 20 20 20 20    4,888,872..     
02ACE0:  20 20 20 64 77 20 38 34 38 2C 38 33 32 2C 38 30       dw 848,832,80
02ACF0:  38 2C 37 39 32 2C 37 36 38 2C 37 34 34 2C 37 32    8,792,768,744,72
02AD00:  54 72 61 63 6B 2D 49 6E 66 6F 0D 0A 00 00 00 00    Track-Info......
02AD10:  24 00 01 00 02 09 4E E5 24 00 C6 02 00 00 00 02    $.....N.$.......
02AD20:  24 00 C2 02 00 00 00 02 24 00 C7 02 00 00 00 02    $.......$.......
02AD30:  24 00 C3 02 00 00 00 02 24 00 C8 02 00 00 00 02    $.......$.......
02AD40:  24 00 C4 02 00 00 00 02 24 00 C9 02 00 00 00 02    $.......$.......
02AD50:  24 00 C5 02 00 00 00 02 24 00 C1 02 00 00 00 02    $.......$.......
02AD60:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
02AD70:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
02AD80:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
02AD90:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
02ADA0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
02ADB0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
02ADC0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
02ADD0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
02ADE0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
02ADF0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
02AE00:  20 6E 7A 2C 6E 65 77 63 6F 6B 0D 0A 09 6C 64 20     nz,newcok...ld 
02AE10:  68 6C 2C 74 65 78 74 3A 20 6C 64 20 61 2C 28 68    hl,text: ld a,(h
02AE20:  6C 29 0D 0A 2E 6E 65 77 63 6F 6B 09 69 6E 63 20    l)...newcok.inc 
02AE30:  68 6C 3A 20 6C 64 20 28 74 65 78 74 61 64 29 2C    hl: ld (textad),
02AE40:  68 6C 0D 0A 09 63 61 6C 6C 20 63 68 61 72 61 64    hl...call charad
02AE50:  0D 0A 0D 0A 2E 73 63 72 6F 6C 63 09 70 75 73 68    .....scrolc.push
02AE60:  20 68 6C 0D 0A 09 20 6C 64 20 64 65 2C 26 34 34     hl... ld de,&44
02AE70:  37 46 3A 20 63 61 6C 6C 20 72 6F 77 0D 0A 09 20    7F: call row... 
02AE80:  6C 64 20 64 65 2C 26 34 34 44 46 3A 20 63 61 6C    ld de,&44DF: cal
02AE90:  6C 20 72 6F 77 0D 0A 09 70 6F 70 20 68 6C 3A 20    l row...pop hl: 
02AEA0:  69 6E 63 20 68 6C 3A 20 6C 64 20 28 66 6F 6E 74    inc hl: ld (font
02AEB0:  61 64 29 2C 68 6C 0D 0A 09 63 61 6C 6C 20 64 73    ad),hl...call ds
02AEC0:  63 72 6F 6C 0D 0A 09 6C 64 20 61 2C 28 74 65 78    crol...ld a,(tex
02AED0:  74 70 74 29 3A 20 69 6E 63 20 61 3A 20 61 6E 64    tpt): inc a: and
02AEE0:  20 33 0D 0A 09 6C 64 20 28 74 65 78 74 70 74 29     3...ld (textpt)
02AEF0:  2C 61 3A 20 72 65 74 0D 0A 0D 0A 09 3B 2D 2D 2D    ,a: ret.....;---
02AF00:  20 73 75 62 72 09 43 61 6C 63 75 6C 61 74 65 20     subr.Calculate 
02AF10:  63 68 61 72 61 63 74 65 72 20 61 64 64 72 65 73    character addres
02AF20:  73 20 28 41 20 2D 3E 20 48 4C 29 0D 0A 0D 0A 2E    s (A -> HL).....
02AF30:  63 68 61 72 61 64 09 73 75 62 20 33 32 3A 20 6C    charad.sub 32: l
02AF40:  64 20 6C 2C 61 3A 20 6C 64 20 68 2C 30 0D 0A 09    d l,a: ld h,0...
02AF50:  61 64 64 20 68 6C 2C 68 6C 3A 20 61 64 64 20 68    add hl,hl: add h
02AF60:  6C 2C 68 6C 3A 20 61 64 64 20 68 6C 2C 68 6C 0D    l,hl: add hl,hl.
02AF70:  0A 09 61 64 64 20 68 6C 2C 68 6C 3A 20 61 64 64    ..add hl,hl: add
02AF80:  20 68 6C 2C 68 6C 3A 20 61 64 64 20 68 6C 2C 68     hl,hl: add hl,h
02AF90:  6C 0D 0A 09 6C 64 20 62 63 2C 66 6F 6E 74 3A 20    l...ld bc,font: 
02AFA0:  61 64 64 20 68 6C 2C 62 63 3A 20 72 65 74 0D 0A    add hl,bc: ret..
02AFB0:  0D 0A 09 3B 2D 2D 2D 20 73 75 62 72 09 50 72 69    ...;--- subr.Pri
02AFC0:  6E 74 20 38 20 72 6F 77 73 2F 31 20 63 6F 6C 75    nt 8 rows/1 colu
02AFD0:  6D 6E 20 6F 6E 20 73 63 72 65 65 6E 0D 0A 0D 0A    mn on screen....
02AFE0:  2E 72 6F 77 09 6C 64 20 62 63 2C 26 30 33 30 38    .row.ld bc,&0308
02AFF0:  0D 0A 09 6C 64 69 3A 20 69 6E 63 20 63 3A 64 65    ...ldi: inc c:de
02B000:  20 70 72 69 6E 74 65 72 20 70 6F 72 74 0D 0A 53     printer port..S
02B010:  44 4F 53 31 20 20 20 2E 53 52 43 09 53 2D 44 4F    DOS1   .SRC.S-DO
02B020:  53 20 76 31 20 2D 20 73 69 6D 70 6C 65 20 44 4F    S v1 - simple DO
02B030:  53 20 28 63 6F 2D 77 72 69 74 74 65 6E 20 62 79    S (co-written by
02B040:  20 52 6F 62 20 53 63 6F 74 74 29 0D 0A 53 50 45     Rob Scott)..SPE
02B050:  4C 4C 20 20 20 2E 53 52 43 09 50 6F 77 65 72 53    LL   .SRC.PowerS
02B060:  70 65 6C 6C 20 2D 20 75 73 65 72 2D 66 72 69 65    pell - user-frie
02B070:  6E 64 6C 79 20 73 70 65 6C 6C 2D 63 68 65 63 6B    ndly spell-check
02B080:  65 72 0D 0A 54 41 4D 53 49 4E 20 20 2E 53 52 43    er..TAMSIN  .SRC
02B090:  09 42 54 4C 20 33 20 69 6E 74 72 6F 20 2D 20 74    .BTL 3 intro - t
02B0A0:  68 65 20 6F 6E 65 20 77 69 74 68 20 54 61 6D 73    he one with Tams
02B0B0:  69 6E 20 74 68 65 20 57 6F 6E 64 65 72 20 43 61    in the Wonder Ca
02B0C0:  74 0D 0A 54 45 58 54 52 45 41 44 2E 53 52 43 09    t..TEXTREAD.SRC.
02B0D0:  45 75 72 6F 57 41 43 43 49 20 74 65 78 74 20 72    EuroWACCI text r
02B0E0:  65 61 64 65 72 20 28 73 65 65 20 2E 44 4F 43 20    eader (see .DOC 
02B0F0:  66 69 6C 65 29 0D 0A 54 4F 4F 4C 4B 49 54 20 2E    file)..TOOLKIT .
02B100:  53 52 43 09 41 41 20 54 6F 6F 6C 6B 69 74 20 2D    SRC.AA Toolkit -
02B110:  20 63 6F 6C 6C 65 63 74 69 6F 6E 20 6F 66 20 52     collection of R
02B120:  53 58 73 0D 0A 23 45 44 49 54 20 20 20 2E 53 52    SXs..#EDIT   .SR
02B130:  43 09 50 72 6F 2D 45 78 74 20 76 31 2E 35 20 66    C.Pro-Ext v1.5 f
02B140:  6F 6E 74 20 65 64 69 74 6F 72 20 2D 20 42 41 53    ont editor - BAS
02B150:  49 43 20 70 72 6F 67 72 61 6D 20 72 65 73 6F 75    IC program resou
02B160:  72 63 65 73 0D 0A 23 47 52 41 50 48 49 43 2E 53    rces..#GRAPHIC.S
02B170:  52 43 09 50 72 6F 2D 45 78 74 20 76 31 2E 35 20    RC.Pro-Ext v1.5 
02B180:  67 72 61 70 68 69 63 20 63 6F 6E 76 65 72 73 69    graphic conversi
02B190:  6F 6E 20 2D 20 42 41 53 49 43 20 70 72 6F 67 72    on - BASIC progr
02B1A0:  61 6D 20 72 65 73 6F 75 72 63 65 73 0D 0A 23 50    am resources..#P
02B1B0:  52 4F 2D 45 58 54 2E 53 52 43 09 50 72 6F 2D 45    RO-EXT.SRC.Pro-E
02B1C0:  78 74 20 76 31 2E 35 20 6D 61 69 6E 20 70 72 6F    xt v1.5 main pro
02B1D0:  67 72 61 6D 20 2D 20 50 72 6F 74 65 78 74 20 65    gram - Protext e
02B1E0:  78 74 65 6E 73 69 6F 6E 73 0D 0A 1A 20 6E 75 6D    xtensions... num
02B1F0:  62 65 72 20 6F 66 20 77 65 6C 6C 2D 6B 6E 6F 77    ber of well-know
02B200:  63 20 65 3A 20 6C 64 20 61 2C 6C 3A 61 64 64 20    c e: ld a,l:add 
02B210:  62 3A 6C 64 20 6C 2C 61 3A 20 6C 64 20 61 2C 64    b:ld l,a: ld a,d
02B220:  3A 61 64 64 20 63 3A 6C 64 20 64 2C 61 0D 0A 09    :add c:ld d,a...
02B230:  6C 64 69 3A 20 69 6E 63 20 63 3A 64 65 63 20 65    ldi: inc c:dec e
02B240:  3A 20 6C 64 20 61 2C 6C 3A 61 64 64 20 62 3A 6C    : ld a,l:add b:l
02B250:  64 20 6C 2C 61 3A 20 6C 64 20 61 2C 64 3A 61 64    d l,a: ld a,d:ad
02B260:  64 20 63 3A 6C 64 20 64 2C 61 0D 0A 09 6C 64 69    d c:ld d,a...ldi
02B270:  3A 20 69 6E 63 20 63 3A 64 65 63 20 65 3A 20 6C    : inc c:dec e: l
02B280:  64 20 61 2C 6C 3A 61 64 64 20 62 3A 6C 64 20 6C    d a,l:add b:ld l
02B290:  2C 61 3A 20 6C 64 20 61 2C 64 3A 61 64 64 20 63    ,a: ld a,d:add c
02B2A0:  3A 6C 64 20 64 2C 61 0D 0A 09 6C 64 69 3A 20 69    :ld d,a...ldi: i
02B2B0:  6E 63 20 63 3A 64 65 63 20 65 3A 20 6C 64 20 61    nc c:dec e: ld a
02B2C0:  2C 6C 3A 61 64 64 20 62 3A 6C 64 20 6C 2C 61 3A    ,l:add b:ld l,a:
02B2D0:  20 6C 64 20 61 2C 64 3A 61 64 64 20 63 3A 6C 64     ld a,d:add c:ld
02B2E0:  20 64 2C 61 0D 0A 09 6C 64 69 3A 20 69 6E 63 20     d,a...ldi: inc 
02B2F0:  63 3A 64 65 63 20 65 3A 20 6C 64 20 61 2C 6C 3A    c:dec e: ld a,l:
02B300:  61 64 64 20 62 3A 6C 64 20 6C 2C 61 3A 20 6C 64    add b:ld l,a: ld
02B310:  20 61 2C 64 3A 61 64 64 20 63 3A 6C 64 20 64 2C     a,d:add c:ld d,
02B320:  61 0D 0A 09 6C 64 69 3A 20 69 6E 63 20 63 3A 64    a...ldi: inc c:d
02B330:  65 63 20 65 3A 20 6C 64 20 61 2C 6C 3A 61 64 64    ec e: ld a,l:add
02B340:  20 62 3A 6C 64 20 6C 2C 61 3A 20 6C 64 20 61 2C     b:ld l,a: ld a,
02B350:  64 3A 61 64 64 20 63 3A 6C 64 20 64 2C 61 0D 0A    d:add c:ld d,a..
02B360:  09 6C 64 69 3A 20 69 6E 63 20 63 3A 64 65 63 20    .ldi: inc c:dec 
02B370:  65 3A 20 6C 64 20 61 2C 6C 3A 61 64 64 20 62 3A    e: ld a,l:add b:
02B380:  6C 64 20 6C 2C 61 3A 20 6C 64 20 61 2C 64 3A 61    ld l,a: ld a,d:a
02B390:  64 64 20 63 3A 6C 64 20 64 2C 61 0D 0A 09 6C 64    dd c:ld d,a...ld
02B3A0:  69 3A 09 09 20 20 6C 64 20 61 2C 6C 3A 61 64 64    i:..  ld a,l:add
02B3B0:  20 62 3A 6C 64 20 6C 2C 61 3A 20 72 65 74 0D 0A     b:ld l,a: ret..
02B3C0:  0D 0A 09 3B 2D 2D 2D 20 73 75 62 72 09 53 63 72    ...;--- subr.Scr
02B3D0:  6F 6C 6C 20 61 6C 6C 20 6C 69 6E 65 73 0D 0A 0D    oll all lines...
02B3E0:  0A 2E 64 73 63 72 6F 6C 09 6C 64 20 64 65 2C 26    ..dscrol.ld de,&
02B3F0:  34 34 32 30 3A 20 63 61 6C 6C 20 73 63 72 6F 6C    4420: call scrol
02B400:  20 61 64 64 20 61 3A 20 61 64 64 20 61 09 09 3B     add a: add a..;
02B410:  38 2A 28 72 6F 77 20 4D 4F 44 20 38 29 20 2D 20    8*(row MOD 8) - 
02B420:  73 75 62 72 6F 77 73 0D 0A 09 6C 64 20 64 2C 61    subrows...ld d,a
02B430:  3A 20 6C 64 20 65 2C 30 3A 20 61 64 64 20 68 6C    : ld e,0: add hl
02B440:  2C 64 65 09 09 09 3B 20 7C 0D 0A 09 72 65 74 0D    ,de...; |...ret.
02B450:  0A 0D 0A 09 3B 2A 2A 2A 20 52 4F 55 54 09 55 70    ....;*** ROUT.Up
02B460:  64 61 74 65 20 70 6F 73 69 74 69 6F 6E 0D 0A 0D    date position...
02B470:  0A 2E 75 70 64 61 74 65 09 6C 64 20 64 65 2C 28    ..update.ld de,(
02B480:  61 6E 69 5F 63 29 3A 20 6C 64 20 61 2C 28 63 61    ani_c): ld a,(ca
02B490:  74 70 69 63 29 0D 0A 2E 75 70 64 5F 6C 70 09 6C    tpic)...upd_lp.l
02B4A0:  64 20 68 6C 2C 32 35 36 3A 20 6F 72 20 61 3A 20    d hl,256: or a: 
02B4B0:  73 62 63 20 68 6C 2C 64 65 3A 20 6A 72 20 7A 2C    sbc hl,de: jr z,
02B4C0:  75 70 64 5F 72 73 0D 0A 09 6C 64 20 68 6C 2C 32    upd_rs...ld hl,2
02B4D0:  30 37 3A 20 6F 72 20 61 3A 20 73 62 63 20 68 6C    07: or a: sbc hl
02B4E0:  2C 64 65 3A 20 6A 72 20 63 2C 6C 69 66 74 5F 75    ,de: jr c,lift_u
02B4F0:  0D 0A 09 6C 64 20 68 6C 2C 31 32 37 3A 20 6F 72    ...ld hl,127: or
02B500:  20 61 3A 20 73 62 63 20 68 6C 2C 64 65 3A 20 6A     a: sbc hl,de: j
02B510:  72 20 63 2C 77 61 6C 6B 5F 6C 0D 0A 09 6C 64 20    r c,walk_l...ld 
02B520:  68 6C 2C 37 39 20 3A 20 6F 72 20 61 3A 20 73 62    hl,79 : or a: sb
02B530:  63 20 68 6C 2C 64 65 3A 20 6A 72 20 63 2C 6C 69    c hl,de: jr c,li
02B540:  66 74 5F 64 0D 0A 0D 0A 2E 77 61 6C 6B 5F 72 09    ft_d.....walk_r.
02B550:  6C 64 20 68 6C 2C 61 6E 69 5F 78 3A 69 6E 63 20    ld hl,ani_x:inc 
02B560:  28 68 6C 29 3A 20 69 6E 63 20 64 65 3A 6C 64 20    (hl): inc de:ld 
02B570:  28 61 6E 69 5F 63 29 2C 64 65 3A 20 69 6E 63 20    (ani_c),de: inc 
02B580:  61 3A 61 6E 64 20 33 3A 20 20 20 20 20 6C 64 20    a:and 3:     ld 
02B590:  28 63 61 74 70 69 63 29 2C 61 3A 20 6C 64 20 61    (catpic),a: ld a
02B5A0:  2C 34 3A 20 72 65 74 0D 0A 2E 77 61 6C 6B 5F 6C    ,4: ret...walk_l
02B5B0:  09 6C 64 20 68 6C 2C 61 6E 69 5F 78 3A 64 65 63    .ld hl,ani_x:dec
02B5C0:  20 28 68 6C 29 3A 20 69 6E 63 20 64 65 3A 6C 64     (hl): inc de:ld
02B5D0:  20 28 61 6E 69 5F 63 29 2C 64 65 3A 20 69 6E 63     (ani_c),de: inc
02B5E0:  20 61 3A 61 6E 64 20 33 3A 6F 72 20 34 3A 6C 64     a:and 3:or 4:ld
02B5F0:  20 28 63 61 74 70 69 63 29 2C 61 3A 20 6C 64 20     (catpic),a: ld 
02B600:  72 3A 20 6C 64 20 64 65 2C 26 34 43 32 30 3A 20    r: ld de,&4C20: 
02B610:  63 61 6C 6C 20 73 63 72 6F 6C 72 0D 0A 09 6C 64    call scrolr...ld
02B620:  20 64 65 2C 26 35 34 32 30 3A 20 63 61 6C 6C 20     de,&5420: call 
02B630:  73 63 72 6F 6C 72 3A 20 6C 64 20 64 65 2C 26 35    scrolr: ld de,&5
02B640:  43 32 30 3A 20 63 61 6C 6C 20 73 63 72 6F 6C 72    C20: call scrolr
02B650:  0D 0A 09 6C 64 20 64 65 2C 26 36 34 32 30 3A 20    ...ld de,&6420: 
02B660:  63 61 6C 6C 20 73 63 72 6F 6C 72 3A 20 6C 64 20    call scrolr: ld 
02B670:  64 65 2C 26 36 43 32 30 3A 20 63 61 6C 6C 20 73    de,&6C20: call s
02B680:  63 72 6F 6C 72 0D 0A 09 6C 64 20 64 65 2C 26 37    crolr...ld de,&7
02B690:  34 32 30 3A 20 63 61 6C 6C 20 73 63 72 6F 6C 72    420: call scrolr
02B6A0:  3A 20 6C 64 20 64 65 2C 26 37 43 32 30 3A 20 63    : ld de,&7C20: c
02B6B0:  61 6C 6C 20 73 63 72 6F 6C 72 0D 0A 0D 0A 09 6C    all scrolr.....l
02B6C0:  64 20 64 65 2C 26 34 34 38 30 3A 20 63 61 6C 6C    d de,&4480: call
02B6D0:  20 73 63 72 6F 6C 72 3A 20 6C 64 20 64 65 2C 26     scrolr: ld de,&
02B6E0:  34 43 38 30 3A 20 63 61 6C 6C 20 73 63 72 6F 6C    4C80: call scrol
02B6F0:  72 0D 0A 09 6C 64 20 64 65 2C 26 35 34 38 30 3A    r...ld de,&5480:
02B700:  20 63 61 6C 6C 20 73 63 72 6F 6C 72 3A 20 6C 64     call scrolr: ld
02B710:  20 64 65 2C 26 35 43 38 30 3A 20 63 61 6C 6C 20     de,&5C80: call 
02B720:  73 63 72 6F 6C 72 0D 0A 09 6C 64 20 64 65 2C 26    scrolr...ld de,&
02B730:  36 34 38 30 3A 20 63 61 6C 6C 20 73 63 72 6F 6C    6480: call scrol
02B740:  72 3A 20 6C 64 20 64 65 2C 26 36 43 38 30 3A 20    r: ld de,&6C80: 
02B750:  63 61 6C 6C 20 73 63 72 6F 6C 72 0D 0A 09 6C 64    call scrolr...ld
02B760:  20 64 65 2C 26 37 34 38 30 3A 20 63 61 6C 6C 20     de,&7480: call 
02B770:  73 63 72 6F 6C 72 3A 20 6C 64 20 64 65 2C 26 37    scrolr: ld de,&7
02B780:  43 38 30 3A 20 63 61 6C 6C 20 73 63 72 6F 6C 72    C80: call scrolr
02B790:  0D 0A 09 72 65 74 0D 0A 0D 0A 2E 73 63 72 6F 6C    ...ret.....scrol
02B7A0:  72 09 6C 64 20 68 2C 64 3A 20 6C 64 20 6C 2C 65    r.ld h,d: ld l,e
02B7B0:  3A 20 69 6E 63 20 68 6C 0D 0A 09 6C 64 69 3A 6C    : inc hl...ldi:l
02B7C0:  64 69 3A 6C 64 69 3A 6C 64 69 3A 6C 64 69 3A 6C    di:ldi:ldi:ldi:l
02B7D0:  64 69 3A 6C 64 69 3A 6C 64 69 3A 6C 64 69 3A 6C    di:ldi:ldi:ldi:l
02B7E0:  64 69 3A 6C 64 69 3A 6C 64 69 3A 6C 64 69 3A 6C    di:ldi:ldi:ldi:l
02B7F0:  64 69 3A 6C 64 69 3A 6C 64 69 0D 0A 09 6C 64 69    di:ldi:ldi...ldi
02B800:  61 2C 34 3A 20 72 65 74 0D 0A 2E 6C 69 66 74 5F    a,4: ret...lift_
02B810:  64 09 6C 64 20 68 6C 2C 61 6E 69 5F 79 3A 69 6E    d.ld hl,ani_y:in
02B820:  63 20 28 68 6C 29 3A 20 69 6E 63 20 64 65 3A 6C    c (hl): inc de:l
02B830:  64 20 28 61 6E 69 5F 63 29 2C 64 65 3A 20 6C 64    d (ani_c),de: ld
02B840:  20 61 2C 38 3A 20 20 20 20 20 20 20 20 20 20 6C     a,8:          l
02B850:  64 20 28 63 61 74 70 69 63 29 2C 61 3A 20 6C 64    d (catpic),a: ld
02B860:  20 61 2C 31 3A 20 72 65 74 0D 0A 2E 6C 69 66 74     a,1: ret...lift
02B870:  5F 75 09 6C 64 20 68 6C 2C 61 6E 69 5F 79 3A 64    _u.ld hl,ani_y:d
02B880:  65 63 20 28 68 6C 29 3A 20 69 6E 63 20 64 65 3A    ec (hl): inc de:
02B890:  6C 64 20 28 61 6E 69 5F 63 29 2C 64 65 3A 20 6C    ld (ani_c),de: l
02B8A0:  64 20 61 2C 38 3A 20 20 20 20 20 20 20 20 20 20    d a,8:          
02B8B0:  6C 64 20 28 63 61 74 70 69 63 29 2C 61 3A 20 6C    ld (catpic),a: l
02B8C0:  64 20 61 2C 31 3A 20 72 65 74 0D 0A 2E 75 70 64    d a,1: ret...upd
02B8D0:  5F 72 73 09 09 09 20 20 20 20 20 6C 64 20 64 65    _rs...     ld de
02B8E0:  2C 30 3A 6C 64 20 28 61 6E 69 5F 63 29 2C 64 65    ,0:ld (ani_c),de
02B8F0:  3A 20 6A 72 20 75 70 64 5F 6C 70 0D 0A 0D 0A 09    : jr upd_lp.....
02B900:  3B 2A 2A 2A 20 53 55 42 52 09 53 70 72 69 74 65    ;*** SUBR.Sprite
02B910:  2D 64 69 73 70 6C 61 79 20 72 6F 75 74 69 6E 65    -display routine
02B920:  0D 0A 09 3B 09 09 41 20 3D 20 68 65 69 67 68 74    ...;..A = height
02B930:  2C 20 48 4C 20 3D 20 73 6F 75 72 63 65 2C 20 44    , HL = source, D
02B940:  45 20 3D 20 64 65 73 74 69 6E 61 74 69 6F 6E 0D    E = destination.
02B950:  0A 09 3B 09 09 70 75 74 73 20 6F 6E 65 20 62 6C    ..;..puts one bl
02B960:  61 6E 6B 20 62 79 74 65 20 65 69 74 68 65 72 20    ank byte either 
02B970:  73 69 64 65 0D 0A 0D 0A 2E 73 70 72 69 74 65 09    side.....sprite.
02B980:  65 78 20 64 65 2C 68 6C 3A 20 6C 64 20 28 68 6C    ex de,hl: ld (hl
02B990:  29 2C 30 3A 20 69 6E 63 20 68 6C 3A 20 65 78 20    ),0: inc hl: ex 
02B9A0:  64 65 2C 68 6C 0D 0A 09 6C 64 69 3A 6C 64 69 3A    de,hl...ldi:ldi:
02B9B0:  6C 64 69 3A 6C 64 69 3A 6C 64 69 3A 6C 64 69 3A    ldi:ldi:ldi:ldi:
02B9C0:  6C 64 69 3A 6C 64 69 3A 6C 64 69 3A 6C 64 69 3A    ldi:ldi:ldi:ldi:
02B9D0:  6C 64 69 3A 6C 64 69 0D 0A 09 65 78 20 64 65 2C    ldi:ldi...ex de,
02B9E0:  68 6C 3A 20 6C 64 20 28 68 6C 29 2C 30 0D 0A 09    hl: ld (hl),0...
02B9F0:  6C 64 20 62 63 2C 26 37 46 33 3A 20 61 64 64 20    ld bc,&7F3: add 
02BA00:  3A 6C 64 69 3A 6C 64 69 3A 6C 64 69 3A 6C 64 69    :ldi:ldi:ldi:ldi
02BA10:  3A 6C 64 69 3A 6C 64 69 3A 6C 64 69 3A 6C 64 69    :ldi:ldi:ldi:ldi
02BA20:  3A 6C 64 69 3A 6C 64 69 3A 6C 64 69 3A 6C 64 69    :ldi:ldi:ldi:ldi
02BA30:  3A 6C 64 69 3A 6C 64 69 3A 6C 64 69 0D 0A 09 6C    :ldi:ldi:ldi...l
02BA40:  64 69 3A 6C 64 69 3A 6C 64 69 3A 6C 64 69 3A 6C    di:ldi:ldi:ldi:l
02BA50:  64 69 3A 6C 64 69 3A 6C 64 69 3A 6C 64 69 3A 6C    di:ldi:ldi:ldi:l
02BA60:  64 69 3A 6C 64 69 3A 6C 64 69 3A 6C 64 69 3A 6C    di:ldi:ldi:ldi:l
02BA70:  64 69 3A 6C 64 69 3A 6C 64 69 3A 6C 64 69 0D 0A    di:ldi:ldi:ldi..
02BA80:  09 6C 64 69 3A 6C 64 69 3A 6C 64 69 3A 6C 64 69    .ldi:ldi:ldi:ldi
02BA90:  3A 6C 64 69 3A 6C 64 69 3A 6C 64 69 3A 6C 64 69    :ldi:ldi:ldi:ldi
02BAA0:  3A 6C 64 69 3A 6C 64 69 3A 6C 64 69 3A 6C 64 69    :ldi:ldi:ldi:ldi
02BAB0:  3A 6C 64 69 3A 6C 64 69 3A 6C 64 69 3A 6C 64 69    :ldi:ldi:ldi:ldi
02BAC0:  0D 0A 09 6C 64 69 3A 6C 64 69 3A 6C 64 69 3A 6C    ...ldi:ldi:ldi:l
02BAD0:  64 69 3A 6C 64 69 3A 6C 64 69 3A 6C 64 69 3A 6C    di:ldi:ldi:ldi:l
02BAE0:  64 69 3A 6C 64 69 3A 6C 64 69 3A 6C 64 69 3A 6C    di:ldi:ldi:ldi:l
02BAF0:  64 69 3A 6C 64 69 3A 6C 64 69 3A 6C 64 69 3A 6C    di:ldi:ldi:ldi:l
02BB00:  64 69 0D 0A 09 6C 64 69 3A 6C 64 69 3A 6C 64 69    di...ldi:ldi:ldi
02BB10:  3A 6C 64 69 3A 6C 64 69 3A 6C 64 69 3A 6C 64 69    :ldi:ldi:ldi:ldi
02BB20:  3A 6C 64 69 3A 6C 64 69 3A 6C 64 69 3A 6C 64 69    :ldi:ldi:ldi:ldi
02BB30:  3A 6C 64 69 3A 6C 64 69 3A 6C 64 69 3A 6C 64 69    :ldi:ldi:ldi:ldi
02BB40:  3A 72 65 74 0D 0A 0D 0A 0D 0A 09 3B 2D 2D 2D 2D    :ret.......;----
02BB50:  2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D    ----------------
02BB60:  2D 2D 2D 2D 2D 2D 2D 20 6D 69 73 63 65 6C 6C 61    ------- miscella
02BB70:  6E 65 6F 75 73 20 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D    neous ----------
02BB80:  2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D    ----------------
02BB90:  2D 2D 2D 0D 0A 0D 0A 09 3B 2A 2A 2A 20 53 55 42    ---.....;*** SUB
02BBA0:  52 09 43 6F 70 79 20 66 72 6F 6D 20 26 43 30 30    R.Copy from &C00
02BBB0:  30 20 73 63 72 65 65 6E 20 28 48 4C 29 20 74 6F    0 screen (HL) to
02BBC0:  20 6F 76 65 72 73 63 61 6E 20 73 63 72 65 65 6E     overscan screen
02BBD0:  20 28 44 45 29 0D 0A 0D 0A 2E 63 73 74 73 5F 72     (DE).....csts_r
02BBE0:  09 6C 64 20 61 2C 38 0D 0A 2E 63 73 74 73 5F 6C    .ld a,8...csts_l
02BBF0:  09 6C 64 20 62 63 2C 38 30 3A 20 6C 64 69 72 0D    .ld bc,80: ldir.
02BC00:  68 6C 2C 62 63 3A 20 62 69 74 20 37 2C 68 3A 20    hl,bc: bit 7,h: 
02BC10:  6A 72 20 7A 2C 73 70 72 6E 6F 63 0D 0A 09 6C 64    jr z,sprnoc...ld
02BC20:  20 62 63 2C 26 43 30 36 30 3A 20 61 64 64 20 68     bc,&C060: add h
02BC30:  6C 2C 62 63 0D 0A 2E 73 70 72 6E 6F 63 09 65 78    l,bc...sprnoc.ex
02BC40:  20 64 65 2C 68 6C 3A 20 64 65 63 20 61 3A 20 6A     de,hl: dec a: j
02BC50:  72 20 6E 7A 2C 73 70 72 69 74 65 0D 0A 09 72 65    r nz,sprite...re
02BC60:  74 0D 0A 0D 0A 09 3B 2A 2A 2A 20 56 41 52 49 09    t.....;*** VARI.
02BC70:  41 6E 69 6D 61 74 69 6F 6E 20 76 61 72 69 61 62    Animation variab
02BC80:  6C 65 73 0D 0A 0D 0A 2E 61 6E 69 5F 78 09 64 62    les.....ani_x.db
02BC90:  20 30 09 09 09 09 09 3B 50 6F 73 69 74 69 6F 6E     0.....;Position
02BCA0:  20 28 30 2D 37 39 29 0D 0A 2E 61 6E 69 5F 79 09     (0-79)...ani_y.
02BCB0:  64 62 20 30 09 09 09 09 09 3B 52 6F 77 20 28 30    db 0.....;Row (0
02BCC0:  2C 20 31 2D 36 33 2C 20 36 34 29 0D 0A 2E 61 6E    , 1-63, 64)...an
02BCD0:  69 5F 63 09 64 77 20 30 09 09 09 09 09 3B 43 6F    i_c.dw 0.....;Co
02BCE0:  75 6E 74 65 72 20 28 30 2D 32 38 37 29 0D 0A 2E    unter (0-287)...
02BCF0:  63 61 74 70 69 63 09 64 62 20 30 09 09 09 09 09    catpic.db 0.....
02BD00:  3B 43 75 72 72 65 6E 74 20 66 72 61 6D 65 20 6F    ;Current frame o
02BD10:  66 20 70 69 63 74 75 72 65 0D 0A 0D 0A 09 3B 2D    f picture.....;-
02BD20:  2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D    ----------------
02BD30:  2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 20 73 63    ------------- sc
02BD40:  72 6F 6C 6C 20 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D    roll -----------
02BD50:  2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D    ----------------
02BD60:  2D 2D 2D 2D 2D 2D 0D 0A 0D 0A 09 3B 2A 2A 2A 20    ------.....;*** 
02BD70:  52 4F 55 54 09 53 63 72 6F 6C 6C 69 6E 67 20 6D    ROUT.Scrolling m
02BD80:  65 73 73 61 67 65 20 68 61 6E 64 6C 65 72 0D 0A    essage handler..
02BD90:  0D 0A 2E 73 63 72 6F 6C 6C 09 6C 64 20 61 2C 28    ...scroll.ld a,(
02BDA0:  74 65 78 74 70 74 29 3A 20 6F 72 20 61 3A 20 6A    textpt): or a: j
02BDB0:  72 20 7A 2C 6E 65 77 0D 0A 09 6C 64 20 68 6C 2C    r z,new...ld hl,
02BDC0:  28 66 6F 6E 74 61 64 29 3A 20 6A 72 20 73 63 72    (fontad): jr scr
02BDD0:  6F 6C 63 0D 0A 0D 0A 2E 6E 65 77 09 6C 64 20 68    olc.....new.ld h
02BDE0:  6C 2C 28 74 65 78 74 61 64 29 0D 0A 09 6C 64 20    l,(textad)...ld 
02BDF0:  61 2C 28 68 6C 29 3A 20 6F 72 20 61 3A 20 6A 72    a,(hl): or a: jr
02BE00:  20 62 6F 61 72 64 20 63 6F 6D 6D 61 6E 64 73 0D     board commands.
02BE10:  0A 43 4F 4E 54 52 4F 4C 20 2E 4D 4F 44 09 09 09    .CONTROL .MOD...
02BE20:  20 20 20 20 20 20 73 65 72 69 61 6C 20 69 6E 74          serial int
02BE30:  65 72 66 61 63 65 20 63 6F 6E 74 72 6F 6C 0D 0A    erface control..
02BE40:  46 49 4C 45 20 20 20 20 2E 4D 4F 44 09 09 09 20    FILE    .MOD... 
02BE50:  20 20 20 20 20 66 69 6C 65 20 75 70 6C 6F 61 64         file upload
02BE60:  2F 64 6F 77 6E 6C 6F 61 64 0D 0A 4C 49 42 52 41    /download..LIBRA
02BE70:  52 59 20 2E 4D 4F 44 09 09 09 20 20 20 20 20 20    RY .MOD...      
02BE80:  4C 42 52 20 66 69 6C 65 20 6D 61 6E 69 70 75 6C    LBR file manipul
02BE90:  61 74 69 6F 6E 0D 0A 53 49 4F 20 20 20 20 20 2E    ation..SIO     .
02BEA0:  4D 4F 44 09 09 09 20 20 20 20 20 20 73 65 72 69    MOD...      seri
02BEB0:  61 6C 20 69 6E 70 75 74 2F 6F 75 74 70 75 74 0D    al input/output.
02BEC0:  0A 53 55 42 52 4F 55 54 20 2E 4D 4F 44 09 09 09    .SUBROUT .MOD...
02BED0:  20 20 20 20 20 20 63 6F 6D 6D 6F 6E 20 73 75 62          common sub
02BEE0:  72 6F 75 74 69 6E 65 73 0D 0A 54 45 52 4D 49 4E    routines..TERMIN
02BEF0:  41 4C 2E 4D 4F 44 09 09 09 20 20 20 20 20 20 74    AL.MOD...      t
02BF00:  65 72 6D 69 6E 61 6C 20 65 6D 75 6C 61 74 6F 72    erminal emulator
02BF10:  0D 0A 1A 6C 6C 65 63 74 69 6F 6E 20 20 76 6F 6C    ...llection  vol
02BF20:  75 6D 65 20 31 0D 0A 7E 7E 7E 7E 7E 7E 7E 7E 7E    ume 1..~~~~~~~~~
02BF30:  7E 7E 7E 7E 7E 7E 7E 7E 7E 7E 7E 7E 7E 7E 7E 7E    ~~~~~~~~~~~~~~~~
02BF40:  7E 7E 0D 0A 54 68 69 73 20 64 69 73 63 20 63 6F    ~~..This disc co
02BF50:  6E 74 61 69 6E 73 20 5A 38 30 20 73 6F 75 72 63    ntains Z80 sourc
02BF60:  65 20 63 6F 64 65 20 66 6F 72 20 61 20 6E 75 6D    e code for a num
02BF70:  62 65 72 20 6F 66 20 77 65 6C 6C 2D 6B 6E 6F 77    ber of well-know
02BF80:  0D 0A 47 52 41 50 48 49 43 53 2E 53 52 43 09 09    ..GRAPHICS.SRC..
02BF90:  09 20 20 20 20 20 20 67 72 61 70 68 69 63 20 63    .      graphic c
02BFA0:  6F 6E 76 65 72 73 69 6F 6E 20 52 53 58 73 0D 0A    onversion RSXs..
02BFB0:  0D 0A 43 4F 4D 4D 53 20 20 20 2E 53 52 43 09 43    ..COMMS   .SRC.C
02BFC0:  68 61 72 6C 65 79 27 73 20 43 6F 6D 6D 73 20 52    harley's Comms R
02BFD0:  4F 4D 20 2D 20 6D 61 69 6E 20 70 72 6F 67 72 61    OM - main progra
02BFE0:  6D 0D 0A 42 42 53 20 20 20 20 20 2E 4D 4F 44 09    m..BBS     .MOD.
02BFF0:  09 09 20 20 20 20 20 20 62 75 6C 6C 65 74 69 6E    ..      bulletin
02C000:  54 72 61 63 6B 2D 49 6E 66 6F 0D 0A 00 00 00 00    Track-Info......
02C010:  25 00 01 00 02 09 4E E5 25 00 C9 02 00 00 00 02    %.....N.%.......
02C020:  25 00 C5 02 00 00 00 02 25 00 C1 02 00 00 00 02    %.......%.......
02C030:  25 00 C6 02 00 00 00 02 25 00 C2 02 00 00 00 02    %.......%.......
02C040:  25 00 C7 02 00 00 00 02 25 00 C3 02 00 00 00 02    %.......%.......
02C050:  25 00 C8 02 00 00 00 02 25 00 C4 02 00 00 00 02    %.......%.......
02C060:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
02C070:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
02C080:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
02C090:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
02C0A0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
02C0B0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
02C0C0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
02C0D0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
02C0E0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
02C0F0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
02C100:  20 65 78 20 64 65 2C 68 6C 0D 0A 09 6C 64 20 62     ex de,hl...ld b
02C110:  63 2C 26 30 37 46 43 3A 20 61 64 64 20 68 6C 2C    c,&07FC: add hl,
02C120:  62 63 3A 20 62 69 74 20 36 2C 68 3A 20 6A 70 20    bc: bit 6,h: jp 
02C130:  7A 2C 64 6E 65 78 74 0D 0A 09 6C 64 20 62 63 2C    z,dnext...ld bc,
02C140:  26 43 30 36 30 3A 20 61 64 64 20 68 6C 2C 62 63    &C060: add hl,bc
02C150:  0D 0A 2E 64 6E 65 78 74 09 65 78 20 64 65 2C 68    ...dnext.ex de,h
02C160:  6C 3A 20 64 65 63 20 61 3A 20 6A 70 20 6E 7A 2C    l: dec a: jp nz,
02C170:  64 72 61 77 6C 70 3A 20 72 65 74 0D 0A 0D 0A 09    drawlp: ret.....
02C180:  3B 2A 2A 2A 20 44 41 54 41 09 4D 65 73 73 61 67    ;*** DATA.Messag
02C190:  65 20 77 72 69 74 65 72 20 74 65 78 74 0D 0A 0D    e writer text...
02C1A0:  0A 2E 6D 74 65 78 74 09 64 62 20 22 2E 2E 2E 2E    ..mtext.db "....
02C1B0:  4E 49 49 54 53 27 4D 53 41 2E 54 2E 22 09 09 3B    NIITS'MSA.T."..;
02C1C0:  22 20 20 49 54 27 53 20 20 54 41 4D 53 49 4E 20    "  IT'S  TAMSIN 
02C1D0:  20 22 0D 0A 09 64 62 20 22 2E 2E 54 54 41 48 43     "...db "..TTAHC
02C1E0:  45 2E 2E 52 57 45 4F 44 4E 22 09 09 3B 22 20 54    E..RWEODN"..;" T
02C1F0:  48 45 20 57 4F 4E 44 45 52 20 43 41 54 20 22 0D    HE WONDER CAT ".
02C200:  0A 09 64 62 20 22 47 45 4E 4E 49 47 4F 41 44 47    ..db "GENNIGOADG
02C210:  2E 45 4E 44 49 2E 22 09 09 3B 22 45 4E 47 41 47    .ENDI."..;"ENGAG
02C220:  45 44 20 49 4E 20 44 4F 49 4E 47 22 0D 0A 09 64    ED IN DOING"...d
02C230:  62 20 22 21 57 53 4F 47 4E 4E 44 49 52 48 4F 54    b "!WSOGNNDIRHOT
02C240:  55 2E 53 22 09 09 3B 22 57 4F 4E 44 52 4F 55 53    U.S"..;"WONDROUS
02C250:  20 54 48 49 4E 47 53 21 22 0D 0A 09 64 62 20 30     THINGS!"...db 0
02C260:  0D 0A 0D 0A 09 3B 2A 2A 2A 20 44 41 54 41 09 53    .....;*** DATA.S
02C270:  63 72 6F 6C 6C 74 65 78 74 0D 0A 0D 0A 2E 74 65    crolltext.....te
02C280:  78 74 09 64 62 20 22 20 20 20 20 20 20 20 20 20    xt.db "         
02C290:  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                    
02C2A0:  20 20 20 20 47 52 45 45 54 49 4E 58 53 53 53 47        GREETINXSSSG
02C2B0:  47 47 53 53 20 57 45 4C 43 4F 4D 45 20 49 4E 20    GGSS WELCOME IN 
02C2C0:  54 48 49 53 20 44 45 4D 4F 20 4F 46 20 54 4F 20    THIS DEMO OF TO 
02C2D0:  42 59 20 57 48 45 4E 20 48 4F 57 20 5A 45 20 45    BY WHEN HOW ZE E
02C2E0:  51 56 41 4C 49 5A 4F 52 2E 20 22 0D 0A 09 64 62    QVALIZOR. "...db
02C2F0:  20 22 20 20 20 20 20 20 20 20 20 20 20 54 48 49     "           THI
02C300:  2E 6C 65 66 74 78 09 64 77 20 30 09 09 09 09 09    .leftx.dw 0.....
02C310:  3B 53 63 72 65 65 6E 20 61 64 64 72 65 73 73 20    ;Screen address 
02C320:  6F 66 20 4C 48 20 73 70 72 69 74 65 0D 0A 2E 72    of LH sprite...r
02C330:  69 67 68 74 78 09 64 77 20 30 09 09 09 09 09 3B    ightx.dw 0.....;
02C340:  53 63 72 65 65 6E 20 61 64 64 72 65 73 73 20 6F    Screen address o
02C350:  66 20 52 48 20 73 70 72 69 74 65 0D 0A 2E 6C 73    f RH sprite...ls
02C360:  70 72 09 64 77 20 66 6F 6E 74 2B 26 38 34 30 09    pr.dw font+&840.
02C370:  09 09 09 3B 43 6F 6E 74 65 6E 74 20 61 64 64 72    ...;Content addr
02C380:  65 73 73 20 6F 66 20 4C 48 20 73 70 72 69 74 65    ess of LH sprite
02C390:  0D 0A 2E 72 73 70 72 09 64 77 20 66 6F 6E 74 2B    ...rspr.dw font+
02C3A0:  26 38 38 30 09 09 09 09 3B 43 6F 6E 74 65 6E 74    &880....;Content
02C3B0:  20 61 64 64 72 65 73 73 20 6F 66 20 52 48 20 73     address of RH s
02C3C0:  70 72 69 74 65 0D 0A 2E 6D 74 70 6F 73 09 64 77    prite...mtpos.dw
02C3D0:  20 6D 74 65 78 74 09 09 09 09 3B 50 6F 73 69 74     mtext....;Posit
02C3E0:  69 6F 6E 20 69 6E 20 6D 65 73 73 61 67 65 20 74    ion in message t
02C3F0:  65 78 74 0D 0A 2E 73 6E 70 6F 73 09 64 77 20 73    ext...snpos.dw s
02C400:  69 6E 65 73 2D 31 09 09 09 09 3B 50 6F 73 69 74    ines-1....;Posit
02C410:  69 6F 6E 20 69 6E 20 73 69 6E 65 20 74 61 62 6C    ion in sine tabl
02C420:  65 0D 0A 0D 0A 09 3B 2A 2A 2A 20 52 4F 55 54 09    e.....;*** ROUT.
02C430:  4D 65 73 73 61 67 65 20 77 72 69 74 65 72 20 74    Message writer t
02C440:  65 78 74 20 68 61 6E 64 6C 65 72 0D 0A 0D 0A 2E    ext handler.....
02C450:  6D 77 63 61 6C 63 09 6C 64 20 68 6C 2C 28 73 6E    mwcalc.ld hl,(sn
02C460:  70 6F 73 29 3A 20 6C 64 20 61 2C 28 68 6C 29 09    pos): ld a,(hl).
02C470:  09 3B 45 6E 64 20 6F 66 20 70 61 74 68 3F 0D 0A    .;End of path?..
02C480:  09 6F 72 20 61 3A 20 6A 72 20 6E 7A 2C 73 6E 65    .or a: jr nz,sne
02C490:  78 69 73 09 09 09 3B 20 7C 0D 0A 0D 0A 09 6C 64    xis...; |.....ld
02C4A0:  20 68 6C 2C 28 6D 74 70 6F 73 29 3A 20 6C 64 20     hl,(mtpos): ld 
02C4B0:  61 2C 28 68 6C 29 09 09 3B 59 65 73 2C 20 73 6F    a,(hl)..;Yes, so
02C4C0:  20 67 65 74 20 6E 65 77 20 63 68 61 72 61 63 74     get new charact
02C4D0:  65 72 0D 0A 09 3A 20 6F 72 20 61 3A 20 6A 72 20    er...: or a: jr 
02C4E0:  6E 7A 2C 6D 77 6E 77 6F 6B 09 09 09 3B 20 7C 0D    nz,mwnwok...; |.
02C4F0:  0A 09 3A 20 6C 64 20 68 6C 2C 6D 74 65 78 74 20    ..: ld hl,mtext 
02C500:  0A 09 6C 64 20 62 63 2C 26 37 42 30 3A 20 61 64    ..ld bc,&7B0: ad
02C510:  64 20 68 6C 2C 62 63 3A 20 65 78 20 64 65 2C 68    d hl,bc: ex de,h
02C520:  6C 0D 0A 09 6C 64 20 62 63 2C 26 37 42 30 3A 20    l...ld bc,&7B0: 
02C530:  61 64 64 20 68 6C 2C 62 63 3A 20 65 78 20 64 65    add hl,bc: ex de
02C540:  2C 68 6C 0D 0A 09 64 65 63 20 61 3A 20 6A 72 20    ,hl...dec a: jr 
02C550:  6E 7A 2C 63 73 74 73 5F 6C 3A 20 72 65 74 0D 0A    nz,csts_l: ret..
02C560:  0D 0A 09 3B 2A 2A 2A 20 53 55 42 52 09 43 52 54    ...;*** SUBR.CRT
02C570:  43 20 72 65 67 69 73 74 65 72 20 73 65 74 0D 0A    C register set..
02C580:  0D 0A 2E 63 72 74 63 09 6C 64 20 61 2C 62 0D 0A    ...crtc.ld a,b..
02C590:  09 6C 64 20 62 2C 26 42 43 3A 20 6F 75 74 20 28    .ld b,&BC: out (
02C5A0:  63 29 2C 61 0D 0A 09 6C 64 20 62 2C 26 42 44 3A    c),a...ld b,&BD:
02C5B0:  20 6F 75 74 20 28 63 29 2C 63 0D 0A 09 72 65 74     out (c),c...ret
02C5C0:  0D 0A 0D 0A 09 3B 2A 2A 2A 20 56 41 52 49 09 53    .....;*** VARI.S
02C5D0:  63 72 6F 6C 6C 69 6E 67 20 6D 65 73 73 61 67 65    crolling message
02C5E0:  0D 0A 0D 0A 2E 74 65 78 74 61 64 09 64 77 20 74    .....textad.dw t
02C5F0:  65 78 74 0D 0A 2E 66 6F 6E 74 61 64 09 64 77 20    ext...fontad.dw 
02C600:  30 0D 0A 2E 74 65 78 74 70 74 09 64 62 20 30 0D    0...textpt.db 0.
02C610:  0A 0D 0A 09 3B 2A 2A 2A 20 44 41 54 41 09 4D 69    ....;*** DATA.Mi
02C620:  73 63 65 6C 6C 61 6E 65 6F 75 73 0D 0A 0D 0A 2E    scellaneous.....
02C630:  66 6E 61 6D 65 09 64 62 20 22 43 41 54 53 20 20    fname.db "CATS  
02C640:  20 20 2E 42 49 4E 22 0D 0A 2E 73 6E 61 6D 65 09      .BIN"...sname.
02C650:  64 62 20 22 53 54 53 20 20 20 20 20 2E 53 43 52    db "STS     .SCR
02C660:  22 0D 0A 2E 6C 6E 61 6D 65 09 64 62 20 22 4E 45    "...lname.db "NE
02C670:  57 46 4F 4E 54 20 2E 42 49 4E 22 0D 0A 2E 6D 6E    WFONT .BIN"...mn
02C680:  61 6D 65 09 64 62 20 22 4F 42 4C 41 44 49 20 20    ame.db "OBLADI  
02C690:  2E 42 49 4E 22 0D 0A 0D 0A 09 3B 2D 2D 2D 2D 2D    .BIN".....;-----
02C6A0:  2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D    ----------------
02C6B0:  2D 2D 2D 2D 2D 2D 2D 2D 20 6D 65 73 73 61 67 65    -------- message
02C6C0:  20 77 72 69 74 65 72 20 2D 2D 2D 2D 2D 2D 2D 2D     writer --------
02C6D0:  2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D    ----------------
02C6E0:  2D 2D 0D 0A 0D 0A 09 3B 2A 2A 2A 20 44 41 54 41    --.....;*** DATA
02C6F0:  09 53 69 6E 65 20 74 61 62 6C 65 73 0D 0A 0D 0A    .Sine tables....
02C700:  20 3A 20 6C 64 20 61 2C 28 68 6C 29 09 09 3B 20     : ld a,(hl)..; 
02C710:  7C 0D 0A 0D 0A 2E 6D 77 6E 77 6F 6B 09 65 78 20    |.....mwnwok.ex 
02C720:  64 65 2C 68 6C 3A 20 63 61 6C 6C 20 63 68 61 72    de,hl: call char
02C730:  61 64 3A 20 6C 64 20 28 6C 73 70 72 29 2C 68 6C    ad: ld (lspr),hl
02C740:  3A 20 65 78 20 64 65 2C 68 6C 3A 20 69 6E 63 20    : ex de,hl: inc 
02C750:  68 6C 3A 20 6C 64 20 61 2C 28 68 6C 29 0D 0A 09    hl: ld a,(hl)...
02C760:  65 78 20 64 65 2C 68 6C 3A 20 63 61 6C 6C 20 63    ex de,hl: call c
02C770:  68 61 72 61 64 3A 20 6C 64 20 28 72 73 70 72 29    harad: ld (rspr)
02C780:  2C 68 6C 3A 20 65 78 20 64 65 2C 68 6C 3A 20 69    ,hl: ex de,hl: i
02C790:  6E 63 20 68 6C 3A 20 6C 64 20 28 6D 74 70 6F 73    nc hl: ld (mtpos
02C7A0:  29 2C 68 6C 0D 0A 0D 0A 09 6C 64 20 61 2C 26 46    ),hl.....ld a,&F
02C7B0:  46 3A 20 6C 64 20 28 62 6F 75 6E 63 78 29 2C 61    F: ld (bouncx),a
02C7C0:  09 09 09 3B 52 65 73 65 74 20 78 20 70 6F 73 69    ...;Reset x posi
02C7D0:  74 69 6F 6E 0D 0A 09 6C 64 20 68 6C 2C 28 73 6E    tion...ld hl,(sn
02C7E0:  70 6F 73 29 3A 20 69 6E 63 20 68 6C 09 09 09 3B    pos): inc hl...;
02C7F0:  53 74 61 72 74 20 6E 65 77 20 70 61 74 68 0D 0A    Start new path..
02C800:  09 6C 64 20 61 2C 28 68 6C 29 3A 20 6F 72 20 61    .ld a,(hl): or a
02C810:  3A 20 6A 72 20 6E 7A 2C 73 6E 65 78 69 74 09 09    : jr nz,snexit..
02C820:  3B 20 7C 0D 0A 09 20 20 20 20 6C 64 20 68 6C 2C    ; |...    ld hl,
02C830:  73 69 6E 65 73 3A 20 6A 72 20 20 20 20 73 6E 65    sines: jr    sne
02C840:  78 69 74 09 09 3B 20 7C 0D 0A 0D 0A 2E 73 6E 65    xit..; |.....sne
02C850:  78 69 73 09 63 61 6C 6C 20 73 74 61 67 65 32 3A    xis.call stage2:
02C860:  20 6C 64 20 68 6C 2C 28 73 6E 70 6F 73 29 09 09     ld hl,(snpos)..
02C870:  3B 52 65 6D 6F 76 65 20 73 70 72 69 74 65 73 20    ;Remove sprites 
02C880:  69 66 20 6E 6F 74 20 6C 61 73 74 0D 0A 2E 73 6E    if not last...sn
02C890:  65 78 69 74 09 6C 64 20 61 2C 28 68 6C 29 3A 20    exit.ld a,(hl): 
02C8A0:  69 6E 63 20 68 6C 3A 20 6C 64 20 28 73 6E 70 6F    inc hl: ld (snpo
02C8B0:  73 29 2C 68 6C 09 3B 53 74 6F 72 65 20 70 6F 73    s),hl.;Store pos
02C8C0:  69 74 69 6F 6E 20 69 6E 20 70 61 74 68 20 61 6E    ition in path an
02C8D0:  64 2E 2E 2E 0D 0A 0D 0A 09 3B 2A 2A 2A 20 52 4F    d........;*** RO
02C8E0:  55 54 09 4D 65 73 73 61 67 65 20 77 72 69 74 65    UT.Message write
02C8F0:  72 20 73 74 61 67 65 20 31 20 2D 20 64 72 61 77    r stage 1 - draw
02C900:  09 64 62 20 30 0D 0A 2E 73 69 6E 65 73 09 64 62    .db 0...sines.db
02C910:  20 34 38 2C 34 30 2C 33 32 2C 32 35 2C 31 39 2C     48,40,32,25,19,
02C920:  31 33 2C 38 2C 34 2C 32 2C 31 2C 31 2C 32 2C 34    13,8,4,2,1,1,2,4
02C930:  2C 38 2C 31 33 2C 31 39 2C 32 35 2C 33 32 2C 34    ,8,13,19,25,32,4
02C940:  30 2C 34 38 2C 34 30 2C 33 32 2C 32 35 2C 31 39    0,48,40,32,25,19
02C950:  2C 31 33 2C 38 2C 34 2C 32 2C 31 2C 31 2C 32 2C    ,13,8,4,2,1,1,2,
02C960:  34 2C 38 2C 31 33 2C 31 39 2C 32 35 2C 33 32 2C    4,8,13,19,25,32,
02C970:  34 30 2C 34 38 2C 34 30 2C 33 32 2C 32 35 2C 31    40,48,40,32,25,1
02C980:  39 2C 31 33 2C 38 2C 34 2C 32 2C 31 2C 31 2C 32    9,13,8,4,2,1,1,2
02C990:  2C 34 2C 38 2C 31 33 2C 31 39 2C 32 35 2C 33 32    ,4,8,13,19,25,32
02C9A0:  2C 34 30 2C 34 38 2C 34 30 2C 33 32 2C 32 35 2C    ,40,48,40,32,25,
02C9B0:  31 39 2C 31 33 2C 38 2C 34 2C 32 2C 31 2C 31 2C    19,13,8,4,2,1,1,
02C9C0:  32 2C 34 2C 38 2C 31 33 2C 31 39 2C 32 35 2C 33    2,4,8,13,19,25,3
02C9D0:  32 2C 34 30 2C 34 38 2C 30 0D 0A 09 64 62 20 34    2,40,48,0...db 4
02C9E0:  38 2C 33 39 2C 33 31 2C 32 34 2C 31 37 2C 31 31    8,39,31,24,17,11
02C9F0:  2C 37 2C 33 2C 31 2C 31 2C 31 2C 33 2C 37 2C 31    ,7,3,1,1,1,3,7,1
02CA00:  31 2C 31 37 2C 32 34 2C 33 31 2C 33 39 2C 34 38    1,17,24,31,39,48
02CA10:  2C 33 39 2C 33 31 2C 32 34 2C 31 37 2C 31 31 2C    ,39,31,24,17,11,
02CA20:  37 2C 33 2C 31 2C 31 2C 31 2C 33 2C 37 2C 31 31    7,3,1,1,1,3,7,11
02CA30:  2C 31 37 2C 32 34 2C 33 31 2C 33 39 2C 34 38 2C    ,17,24,31,39,48,
02CA40:  33 39 2C 33 31 2C 32 34 2C 31 37 2C 31 31 2C 37    39,31,24,17,11,7
02CA50:  2C 33 2C 31 2C 31 2C 31 2C 33 2C 37 2C 31 31 2C    ,3,1,1,1,3,7,11,
02CA60:  31 37 2C 32 34 2C 33 31 2C 33 39 2C 34 38 2C 33    17,24,31,39,48,3
02CA70:  39 2C 33 31 2C 32 34 2C 31 37 2C 31 31 2C 37 2C    9,31,24,17,11,7,
02CA80:  33 2C 31 2C 31 2C 31 2C 33 2C 37 2C 31 31 2C 31    3,1,1,1,3,7,11,1
02CA90:  37 2C 32 34 2C 33 31 2C 33 39 2C 34 38 2C 30 0D    7,24,31,39,48,0.
02CAA0:  0A 09 64 62 20 34 38 2C 33 39 2C 33 31 2C 32 33    ..db 48,39,31,23
02CAB0:  2C 31 36 2C 31 30 2C 35 2C 32 2C 31 2C 31 2C 32    ,16,10,5,2,1,1,2
02CAC0:  2C 35 2C 31 30 2C 31 36 2C 32 33 2C 33 31 2C 33    ,5,10,16,23,31,3
02CAD0:  39 2C 34 38 2C 33 39 2C 33 31 2C 32 33 2C 31 36    9,48,39,31,23,16
02CAE0:  2C 31 30 2C 35 2C 32 2C 31 2C 31 2C 32 2C 35 2C    ,10,5,2,1,1,2,5,
02CAF0:  31 30 2C 31 36 2C 32 33 2C 33 31 2C 33 39 2C 34    10,16,23,31,39,4
02CB00:  20 73 70 72 69 74 65 73 0D 0A 0D 0A 2E 73 74 61     sprites.....sta
02CB10:  67 65 31 09 63 61 6C 6C 20 73 63 72 61 64 64 09    ge1.call scradd.
02CB20:  09 09 09 3B 43 61 6C 63 75 6C 61 74 65 20 62 61    ...;Calculate ba
02CB30:  73 65 20 61 64 64 72 65 73 73 0D 0A 09 6C 64 20    se address...ld 
02CB40:  62 63 2C 26 38 30 3A 20 61 64 64 20 68 6C 2C 62    bc,&80: add hl,b
02CB50:  63 09 09 09 3B 20 7C 0D 0A 09 70 75 73 68 20 68    c...; |...push h
02CB60:  6C 09 09 09 09 09 3B 2E 2E 2E 66 6F 72 20 74 68    l.....;...for th
02CB70:  65 20 6C 65 66 74 2D 68 61 6E 64 20 73 70 72 69    e left-hand spri
02CB80:  74 65 0D 0A 09 20 6C 64 20 61 2C 28 62 6F 75 6E    te... ld a,(boun
02CB90:  63 78 29 3A 20 69 6E 63 20 61 09 09 09 3B 20 7C    cx): inc a...; |
02CBA0:  0D 0A 09 20 6C 64 20 28 62 6F 75 6E 63 78 29 2C    ... ld (bouncx),
02CBB0:  61 3A 20 6C 64 20 65 2C 61 3A 20 6C 64 20 64 2C    a: ld e,a: ld d,
02CBC0:  30 09 09 3B 20 7C 0D 0A 09 20 61 64 64 20 68 6C    0..; |... add hl
02CBD0:  2C 64 65 3A 20 6C 64 20 28 6C 65 66 74 78 29 2C    ,de: ld (leftx),
02CBE0:  68 6C 09 09 3B 20 7C 0D 0A 09 70 6F 70 20 68 6C    hl..; |...pop hl
02CBF0:  3A 20 6C 64 20 62 63 2C 39 32 09 09 09 3B 2E 2E    : ld bc,92...;..
02CC00:  2E 61 6E 64 20 74 68 65 20 72 69 67 68 74 2D 68    .and the right-h
02CC10:  61 6E 64 20 6F 6E 65 0D 0A 09 61 64 64 20 68 6C    and one...add hl
02CC20:  2C 62 63 3A 20 6F 72 20 61 09 09 09 09 3B 20 7C    ,bc: or a....; |
02CC30:  0D 0A 09 73 62 63 20 68 6C 2C 64 65 3A 20 6C 64    ...sbc hl,de: ld
02CC40:  20 28 72 69 67 68 74 78 29 2C 68 6C 09 09 3B 20     (rightx),hl..; 
02CC50:  7C 0D 0A 0D 0A 09 6C 64 20 68 6C 2C 28 6C 65 66    |.....ld hl,(lef
02CC60:  74 78 20 29 3A 20 6C 64 20 64 65 2C 73 70 72 73    tx ): ld de,sprs
02CC70:  74 31 3A 20 63 61 6C 6C 20 73 61 76 65 09 3B 53    t1: call save.;S
02CC80:  74 6F 72 65 20 63 75 72 72 65 6E 74 20 73 63 72    tore current scr
02CC90:  65 65 6E 20 63 6F 6E 74 65 6E 74 73 0D 0A 09 6C    een contents...l
02CCA0:  64 20 68 6C 2C 28 72 69 67 68 74 78 29 3A 20 6C    d hl,(rightx): l
02CCB0:  64 20 64 65 2C 73 70 72 73 74 32 3A 20 63 61 6C    d de,sprst2: cal
02CCC0:  6C 20 73 61 76 65 09 3B 20 7C 0D 0A 09 6C 64 20    l save.; |...ld 
02CCD0:  64 65 2C 28 6C 65 66 74 78 20 29 3A 20 6C 64 20    de,(leftx ): ld 
02CCE0:  68 6C 2C 28 6C 73 70 72 29 3A 20 63 61 6C 6C 20    hl,(lspr): call 
02CCF0:  64 72 61 77 09 3B 44 72 61 77 20 6E 65 77 20 73    draw.;Draw new s
02CD00:  38 2C 33 39 2C 33 31 2C 32 33 2C 31 36 2C 31 30    8,39,31,23,16,10
02CD10:  2C 35 2C 32 2C 31 2C 31 2C 32 2C 35 2C 31 30 2C    ,5,2,1,1,2,5,10,
02CD20:  31 36 2C 32 33 2C 33 31 2C 33 39 2C 34 38 2C 33    16,23,31,39,48,3
02CD30:  39 2C 33 31 2C 32 33 2C 31 36 2C 31 30 2C 35 2C    9,31,23,16,10,5,
02CD40:  32 2C 31 2C 31 2C 32 2C 35 2C 31 30 2C 31 36 2C    2,1,1,2,5,10,16,
02CD50:  32 33 2C 33 31 2C 33 39 2C 34 38 2C 30 0D 0A 09    23,31,39,48,0...
02CD60:  64 62 20 34 38 2C 33 38 2C 33 30 2C 32 31 2C 31    db 48,38,30,21,1
02CD70:  34 2C 38 2C 34 2C 31 2C 31 2C 31 2C 34 2C 38 2C    4,8,4,1,1,1,4,8,
02CD80:  31 34 2C 32 31 2C 33 30 2C 33 38 2C 34 38 2C 33    14,21,30,38,48,3
02CD90:  38 2C 33 30 2C 32 31 2C 31 34 2C 38 2C 34 2C 31    8,30,21,14,8,4,1
02CDA0:  2C 31 2C 31 2C 34 2C 38 2C 31 34 2C 32 31 2C 33    ,1,1,4,8,14,21,3
02CDB0:  30 2C 33 38 2C 34 38 2C 33 38 2C 33 30 2C 32 31    0,38,48,38,30,21
02CDC0:  2C 31 34 2C 38 2C 34 2C 31 2C 31 2C 31 2C 34 2C    ,14,8,4,1,1,1,4,
02CDD0:  38 2C 31 34 2C 32 31 2C 33 30 2C 33 38 2C 34 38    8,14,21,30,38,48
02CDE0:  2C 33 38 2C 33 30 2C 32 31 2C 31 34 2C 38 2C 34    ,38,30,21,14,8,4
02CDF0:  2C 31 2C 31 2C 31 2C 34 2C 38 2C 31 34 2C 32 31    ,1,1,1,4,8,14,21
02CE00:  2C 33 30 2C 33 38 2C 34 38 2C 30 0D 0A 09 64 62    ,30,38,48,0...db
02CE10:  20 34 38 2C 33 38 2C 32 38 2C 32 30 2C 31 33 2C     48,38,28,20,13,
02CE20:  37 2C 33 2C 31 2C 31 2C 33 2C 37 2C 31 33 2C 32    7,3,1,1,3,7,13,2
02CE30:  30 2C 32 38 2C 33 38 2C 34 38 2C 33 38 2C 32 38    0,28,38,48,38,28
02CE40:  2C 32 30 2C 31 33 2C 37 2C 33 2C 31 2C 31 2C 33    ,20,13,7,3,1,1,3
02CE50:  2C 37 2C 31 33 2C 32 30 2C 32 38 2C 33 38 2C 34    ,7,13,20,28,38,4
02CE60:  38 2C 33 38 2C 32 38 2C 32 30 2C 31 33 2C 37 2C    8,38,28,20,13,7,
02CE70:  33 2C 31 2C 31 2C 33 2C 37 2C 31 33 2C 32 30 2C    3,1,1,3,7,13,20,
02CE80:  32 38 2C 33 38 2C 34 38 2C 33 38 2C 32 38 2C 32    28,38,48,38,28,2
02CE90:  30 2C 31 33 2C 37 2C 33 2C 31 2C 31 2C 33 2C 37    0,13,7,3,1,1,3,7
02CEA0:  2C 31 33 2C 32 30 2C 32 38 2C 33 38 2C 34 38 2C    ,13,20,28,38,48,
02CEB0:  30 0D 0A 09 64 62 20 34 38 2C 33 37 2C 32 37 2C    0...db 48,37,27,
02CEC0:  31 38 2C 31 31 2C 35 2C 32 2C 31 2C 32 2C 35 2C    18,11,5,2,1,2,5,
02CED0:  31 31 2C 31 38 2C 32 37 2C 33 37 2C 34 38 2C 33    11,18,27,37,48,3
02CEE0:  37 2C 32 37 2C 31 38 2C 31 31 2C 35 2C 32 2C 31    7,27,18,11,5,2,1
02CEF0:  2C 32 2C 35 2C 31 31 2C 31 38 2C 32 37 2C 33 37    ,2,5,11,18,27,37
02CF00:  70 72 69 74 65 0D 0A 09 6C 64 20 64 65 2C 28 72    prite...ld de,(r
02CF10:  69 67 68 74 78 29 3A 20 6C 64 20 68 6C 2C 28 72    ightx): ld hl,(r
02CF20:  73 70 72 29 3A 20 63 61 6C 6C 20 64 72 61 77 09    spr): call draw.
02CF30:  3B 20 7C 0D 0A 09 72 65 74 0D 0A 0D 0A 09 3B 2A    ; |...ret.....;*
02CF40:  2A 2A 20 52 4F 55 54 09 4D 65 73 73 61 67 65 20    ** ROUT.Message 
02CF50:  77 72 69 74 65 72 20 73 74 61 67 65 20 32 20 2D    writer stage 2 -
02CF60:  20 72 65 6D 6F 76 65 20 73 70 72 69 74 65 73 0D     remove sprites.
02CF70:  0A 0D 0A 2E 73 74 61 67 65 32 09 6C 64 20 64 65    ....stage2.ld de
02CF80:  2C 28 72 69 67 68 74 78 29 3A 20 6C 64 20 68 6C    ,(rightx): ld hl
02CF90:  2C 73 70 72 73 74 32 3A 20 63 61 6C 6C 20 64 72    ,sprst2: call dr
02CFA0:  61 77 0D 0A 09 6C 64 20 64 65 2C 28 6C 65 66 74    aw...ld de,(left
02CFB0:  78 20 29 3A 20 6C 64 20 68 6C 2C 73 70 72 73 74    x ): ld hl,sprst
02CFC0:  31 3A 20 63 61 6C 6C 20 64 72 61 77 0D 0A 09 72    1: call draw...r
02CFD0:  65 74 0D 0A 0D 0A 09 3B 2A 2A 2A 20 53 55 42 52    et.....;*** SUBR
02CFE0:  09 53 74 6F 72 65 20 73 70 72 69 74 65 20 66 72    .Store sprite fr
02CFF0:  6F 6D 20 48 4C 20 28 73 63 72 65 65 6E 29 20 69    om HL (screen) i
02D000:  6E 20 44 45 20 28 64 61 74 61 29 0D 0A 0D 0A 2E    n DE (data).....
02D010:  73 61 76 65 09 6C 64 20 61 2C 31 36 0D 0A 2E 73    save.ld a,16...s
02D020:  61 76 65 6C 70 09 6C 64 69 3A 6C 64 69 3A 6C 64    avelp.ldi:ldi:ld
02D030:  69 3A 6C 64 69 0D 0A 09 6C 64 20 62 63 2C 26 30    i:ldi...ld bc,&0
02D040:  37 46 43 3A 20 61 64 64 20 68 6C 2C 62 63 3A 20    7FC: add hl,bc: 
02D050:  62 69 74 20 36 2C 68 3A 20 6A 70 20 7A 2C 73 6E    bit 6,h: jp z,sn
02D060:  65 78 74 0D 0A 09 6C 64 20 62 63 2C 26 43 30 36    ext...ld bc,&C06
02D070:  30 3A 20 61 64 64 20 68 6C 2C 62 63 0D 0A 2E 73    0: add hl,bc...s
02D080:  6E 65 78 74 09 64 65 63 20 61 3A 20 6A 70 20 6E    next.dec a: jp n
02D090:  7A 2C 73 61 76 65 6C 70 3A 20 72 65 74 0D 0A 0D    z,savelp: ret...
02D0A0:  0A 09 3B 2A 2A 2A 20 53 55 42 52 09 44 72 61 77    ..;*** SUBR.Draw
02D0B0:  20 73 70 72 69 74 65 20 66 72 6F 6D 20 48 4C 20     sprite from HL 
02D0C0:  28 64 61 74 61 29 20 61 74 20 44 45 20 28 73 63    (data) at DE (sc
02D0D0:  72 65 65 6E 29 0D 0A 0D 0A 2E 64 72 61 77 09 6C    reen).....draw.l
02D0E0:  64 20 61 2C 31 36 0D 0A 2E 64 72 61 77 6C 70 09    d a,16...drawlp.
02D0F0:  6C 64 69 3A 6C 64 69 3A 6C 64 69 3A 6C 64 69 3A    ldi:ldi:ldi:ldi:
02D100:  2C 34 38 2C 33 37 2C 32 37 2C 31 38 2C 31 31 2C    ,48,37,27,18,11,
02D110:  35 2C 32 2C 31 2C 32 2C 35 2C 31 31 2C 31 38 2C    5,2,1,2,5,11,18,
02D120:  32 37 2C 33 37 2C 34 38 2C 33 37 2C 32 37 2C 31    27,37,48,37,27,1
02D130:  38 2C 31 31 2C 35 2C 32 2C 31 2C 32 2C 35 2C 31    8,11,5,2,1,2,5,1
02D140:  31 2C 31 38 2C 32 37 2C 33 37 2C 34 38 2C 30 0D    1,18,27,37,48,0.
02D150:  0A 09 64 62 20 34 38 2C 33 36 2C 32 36 2C 31 36    ..db 48,36,26,16
02D160:  2C 39 2C 34 2C 31 2C 31 2C 34 2C 39 2C 31 36 2C    ,9,4,1,1,4,9,16,
02D170:  32 36 2C 33 36 2C 34 38 2C 33 36 2C 32 36 2C 31    26,36,48,36,26,1
02D180:  36 2C 39 2C 34 2C 31 2C 31 2C 34 2C 39 2C 31 36    6,9,4,1,1,4,9,16
02D190:  2C 32 36 2C 33 36 2C 34 38 2C 33 36 2C 32 36 2C    ,26,36,48,36,26,
02D1A0:  31 36 2C 39 2C 34 2C 31 2C 31 2C 34 2C 39 2C 31    16,9,4,1,1,4,9,1
02D1B0:  36 2C 32 36 2C 33 36 2C 34 38 2C 33 36 2C 32 36    6,26,36,48,36,26
02D1C0:  2C 31 36 2C 39 2C 34 2C 31 2C 31 2C 34 2C 39 2C    ,16,9,4,1,1,4,9,
02D1D0:  31 36 2C 32 36 2C 33 36 2C 34 38 2C 30 0D 0A 09    16,26,36,48,0...
02D1E0:  64 62 20 34 38 2C 33 35 2C 32 34 2C 31 34 2C 37    db 48,35,24,14,7
02D1F0:  2C 32 2C 31 2C 32 2C 37 2C 31 34 2C 32 34 2C 33    ,2,1,2,7,14,24,3
02D200:  35 2C 34 38 2C 33 35 2C 32 34 2C 31 34 2C 37 2C    5,48,35,24,14,7,
02D210:  32 2C 31 2C 32 2C 37 2C 31 34 2C 32 34 2C 33 35    2,1,2,7,14,24,35
02D220:  2C 34 38 2C 33 35 2C 32 34 2C 31 34 2C 37 2C 32    ,48,35,24,14,7,2
02D230:  2C 31 2C 32 2C 37 2C 31 34 2C 32 34 2C 33 35 2C    ,1,2,7,14,24,35,
02D240:  34 38 2C 33 35 2C 32 34 2C 31 34 2C 37 2C 32 2C    48,35,24,14,7,2,
02D250:  31 2C 32 2C 37 2C 31 34 2C 32 34 2C 33 35 2C 34    1,2,7,14,24,35,4
02D260:  38 2C 30 0D 0A 09 64 62 20 30 0D 0A 0D 0A 09 3B    8,0...db 0.....;
02D270:  2A 2A 2A 20 56 41 52 49 09 4D 65 73 73 61 67 65    *** VARI.Message
02D280:  20 77 72 69 74 65 72 20 76 61 72 69 61 62 6C 65     writer variable
02D290:  73 0D 0A 0D 0A 2E 73 70 72 73 74 31 09 64 73 20    s.....sprst1.ds 
02D2A0:  36 34 09 09 09 09 09 3B 44 6F 6E 27 74 20 77 69    64.....;Don't wi
02D2B0:  70 65 20 62 61 63 6B 67 72 6F 75 6E 64 0D 0A 2E    pe background...
02D2C0:  73 70 72 73 74 32 09 64 73 20 36 34 09 09 09 09    sprst2.ds 64....
02D2D0:  09 3B 20 7C 0D 0A 0D 0A 2E 62 6F 75 6E 63 78 09    .; |.....bouncx.
02D2E0:  64 62 20 26 46 46 09 09 09 09 09 3B 43 75 72 72    db &FF.....;Curr
02D2F0:  65 6E 74 20 58 20 70 6F 73 69 74 69 6F 6E 0D 0A    ent X position..
02D300:  54 72 61 63 6B 2D 49 6E 66 6F 0D 0A 00 00 00 00    Track-Info......
02D310:  26 00 01 00 02 09 4E E5 26 00 C3 02 00 00 00 02    &.....N.&.......
02D320:  26 00 C8 02 00 00 00 02 26 00 C4 02 00 00 00 02    &.......&.......
02D330:  26 00 C9 02 00 00 00 02 26 00 C5 02 00 00 00 02    &.......&.......
02D340:  26 00 C1 02 00 00 00 02 26 00 C6 02 00 00 00 02    &.......&.......
02D350:  26 00 C2 02 00 00 00 02 26 00 C7 02 00 00 00 02    &.......&.......
02D360:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
02D370:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
02D380:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
02D390:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
02D3A0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
02D3B0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
02D3C0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
02D3D0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
02D3E0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
02D3F0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
02D400:  4D 50 4C 45 54 45 20 48 49 53 20 4E 4F 56 45 4C    MPLETE HIS NOVEL
02D410:  20 22 0D 0A 09 64 62 20 22 45 4E 54 49 54 4C 45     "...db "ENTITLE
02D420:  44 20 31 30 30 31 20 54 48 49 4E 47 53 20 54 4F    D 1001 THINGS TO
02D430:  20 44 4F 20 57 49 54 48 20 59 4F 55 52 20 47 45     DO WITH YOUR GE
02D440:  52 42 49 4C 20 44 52 4F 50 50 49 4E 47 53 2E 20    RBIL DROPPINGS. 
02D450:  20 20 20 20 20 20 20 20 20 20 20 20 20 22 0D 0A                 "..
02D460:  0D 0A 09 64 62 20 22 4E 4F 57 20 59 4F 55 20 48    ...db "NOW YOU H
02D470:  41 56 45 20 42 45 45 4E 20 4F 46 46 49 43 49 41    AVE BEEN OFFICIA
02D480:  4C 4C 59 20 57 45 4C 43 4F 4D 45 44 20 49 4E 54    LLY WELCOMED INT
02D490:  4F 20 54 48 49 53 20 44 45 4D 4F 2C 20 53 4F 20    O THIS DEMO, SO 
02D4A0:  59 4F 55 20 57 49 4C 4C 20 4E 4F 57 20 22 0D 0A    YOU WILL NOW "..
02D4B0:  09 64 62 20 22 42 45 20 55 4E 4F 46 46 49 43 49    .db "BE UNOFFICI
02D4C0:  41 4C 4C 59 20 57 45 4C 43 4F 4D 45 44 20 49 4E    ALLY WELCOMED IN
02D4D0:  54 4F 20 54 48 49 53 20 44 45 4D 4F 2C 20 53 4F    TO THIS DEMO, SO
02D4E0:  20 48 45 52 45 20 47 4F 45 53 20 20 20 20 20 20     HERE GOES      
02D4F0:  20 57 45 4C 43 4F 4D 45 20 49 4E 20 22 0D 0A 09     WELCOME IN "...
02D500:  64 62 20 22 4F 55 52 20 57 4F 4E 44 45 52 46 55    db "OUR WONDERFU
02D510:  4C 20 57 4F 52 4C 44 20 4F 46 20 44 45 4D 4F 2E    L WORLD OF DEMO.
02D520:  20 53 4F 20 57 45 4C 43 4F 4D 45 20 41 47 41 49     SO WELCOME AGAI
02D530:  4E 2C 20 43 41 54 45 52 49 4E 47 20 49 53 20 42    N, CATERING IS B
02D540:  59 20 45 57 41 52 57 4F 4F 57 4F 4F 20 22 0D 0A    Y EWARWOOWOO "..
02D550:  09 64 62 20 22 43 41 54 45 52 49 4E 47 20 43 4F    .db "CATERING CO
02D560:  52 50 4F 52 41 54 49 4F 4E 20 41 4E 44 20 4F 4E    RPORATION AND ON
02D570:  4C 59 20 43 4F 4E 53 49 53 54 53 20 4F 46 20 43    LY CONSISTS OF C
02D580:  52 49 53 50 53 20 57 48 49 43 48 20 53 4D 45 4C    RISPS WHICH SMEL
02D590:  4C 20 28 41 4E 44 20 22 0D 0A 09 64 62 20 22 54    L (AND "...db "T
02D5A0:  41 53 54 45 29 20 4C 49 4B 45 20 55 4E 57 41 53    ASTE) LIKE UNWAS
02D5B0:  48 45 44 20 47 45 4E 49 54 41 4C 49 41 2E 20 20    HED GENITALIA.  
02D5C0:  54 48 49 53 20 44 45 4D 4F 20 49 53 20 44 45 44    THIS DEMO IS DED
02D5D0:  49 43 41 54 45 44 20 54 4F 20 54 41 4D 53 49 4E    ICATED TO TAMSIN
02D5E0:  20 54 48 45 20 22 0D 0A 09 64 62 20 22 57 4F 4E     THE "...db "WON
02D5F0:  44 52 4F 55 53 20 43 41 54 2E 20 20 20 20 4E 4F    DROUS CAT.    NO
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:  57 20 49 54 20 49 5A 20 44 41 20 43 52 45 44 49    W IT IZ DA CREDI
02D810:  54 5A 20 49 4E 20 57 48 49 43 48 20 46 4F 52 20    TZ IN WHICH FOR 
02D820:  57 48 4F 20 57 45 20 41 52 45 20 59 4F 55 20 57    WHO WE ARE YOU W
02D830:  45 4C 43 4F 4D 49 4E 47 20 22 0D 0A 09 64 62 20    ELCOMING "...db 
02D840:  22 59 45 53 20 50 4C 45 41 53 45 20 4D 41 54 52    "YES PLEASE MATR
02D850:  4F 4E 2E 20 20 20 20 20 20 48 49 47 48 2D 46 52    ON.      HIGH-FR
02D860:  45 51 55 45 4E 43 59 20 53 4F 55 4E 44 53 20 54    EQUENCY SOUNDS T
02D870:  48 41 4E 58 20 54 4F 20 54 4F 4D 20 44 45 41 4E    HANX TO TOM DEAN
02D880:  20 4F 46 20 53 51 55 45 41 4B 59 20 22 0D 0A 09     OF SQUEAKY "...
02D890:  64 62 20 22 53 59 53 54 45 4D 21 20 20 20 20 52    db "SYSTEM!    R
02D8A0:  41 44 49 4B 41 4C 20 47 46 58 5A 58 5A 5A 5A 58    ADIKAL GFXZXZZZX
02D8B0:  20 42 59 20 47 4F 4E 4F 52 52 48 4F 45 41 20 4F     BY GONORRHOEA O
02D8C0:  46 20 53 59 50 48 49 4C 49 53 2E 20 41 4C 53 4F    F SYPHILIS. ALSO
02D8D0:  20 47 46 58 5A 5A 58 5A 58 58 5A 51 20 22 0D 0A     GFXZZXZXXZQ "..
02D8E0:  09 64 62 20 22 49 53 20 53 43 4F 52 49 4E 47 20    .db "IS SCORING 
02D8F0:  35 31 37 20 50 4F 49 4E 54 53 20 41 54 20 53 43    517 POINTS AT SC
02D900:  52 41 42 42 4C 45 20 49 46 20 59 4F 55 20 47 45    RABBLE IF YOU GE
02D910:  54 20 49 54 20 4F 4E 20 41 20 54 52 49 50 4C 45    T IT ON A TRIPLE
02D920:  2D 57 4F 52 22 0D 0A 6C 69 73 74 0D 0A 09 64 62    -WOR"..list...db
02D930:  20 30 0D 0A 1A 20 74 68 65 20 57 6F 6E 64 65 72     0... the Wonder
02D940:  20 43 61 74 0D 0A 0D 0A 09 6F 72 67 20 26 38 30     Cat.....org &80
02D950:  30 30 0D 0A 09 77 72 69 74 65 20 22 64 69 73 63    00...write "disc
02D960:  2E 62 69 6E 22 0D 0A 09 6E 6F 6C 69 73 74 0D 0A    .bin"...nolist..
02D970:  0D 0A 09 3B 44 65 6D 6F 20 73 68 6F 72 74 2C 20    ...;Demo short, 
02D980:  52 49 53 50 53 20 57 48 49 43 48 20 53 4D 45 4C    RISPS WHICH SMEL
02D990:  4C 20 28 41 4E 44 20 22 0D 0A 09 64 62 20 22 54    L (AND "...db "T
02D9A0:  41 53 54 45 29 20 4C 49 4B 45 20 55 4E 57 41 53    ASTE) LIKE UNWAS
02D9B0:  48 45 44 20 47 45 4E 49 54 41 4C 49 41 2E 20 20    HED GENITALIA.  
02D9C0:  54 48 49 53 20 44 45 4D 4F 20 49 53 20 44 45 44    THIS DEMO IS DED
02D9D0:  49 43 41 54 45 44 20 54 4F 20 54 41 4D 53 49 4E    ICATED TO TAMSIN
02D9E0:  20 54 48 45 20 22 0D 0A 09 64 62 20 22 57 4F 4E     THE "...db "WON
02D9F0:  44 52 4F 55 53 20 43 41 54 2E 20 20 20 20 4E 4F    DROUS CAT.    NO
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:  53 20 49 53 20 44 41 20 46 55 43 4B 49 4E 20 53    S IS DA FUCKIN S
02DE10:  5A 45 4E 45 20 4D 4F 42 20 53 54 53 20 57 49 54    ZENE MOB STS WIT
02DE20:  48 20 44 41 20 4C 41 54 45 53 54 20 57 41 52 45    H DA LATEST WARE
02DE30:  5A 20 46 52 4F 4D 20 5A 45 20 53 5A 45 4E 45 2E    Z FROM ZE SZENE.
02DE40:  20 22 0D 0A 09 64 62 20 22 41 4C 4C 20 43 4F 44     "...db "ALL COD
02DE50:  49 4E 47 20 42 59 20 43 52 4F 57 4E 20 4F 46 20    ING BY CROWN OF 
02DE60:  53 54 53 2E 20 47 52 41 46 49 58 20 42 59 20 4B    STS. GRAFIX BY K
02DE70:  4E 55 55 55 55 54 53 43 48 46 4C 45 43 4B 20 4F    NUUUUTSCHFLECK O
02DE80:  46 20 49 46 57 20 22 0D 0A 09 64 62 20 22 28 49    F IFW "...db "(I
02DE90:  4E 43 4F 4D 50 45 54 45 4E 54 20 46 55 43 4B 57    NCOMPETENT FUCKW
02DEA0:  49 54 53 29 2E 20 4D 55 53 49 58 58 20 42 59 20    ITS). MUSIXX BY 
02DEB0:  4B 41 4E 47 41 52 4F 4F 20 4F 46 20 41 52 53 45    KANGAROO OF ARSE
02DEC0:  42 41 4E 44 49 54 20 50 52 4F 44 55 43 54 49 4F    BANDIT PRODUCTIO
02DED0:  4E 53 20 22 0D 0A 09 64 62 20 22 47 4D 42 48 2E    NS "...db "GMBH.
02DEE0:  20 4A 4F 42 42 49 4E 47 20 49 4E 54 4F 20 41 20     JOBBING INTO A 
02DEF0:  57 41 4C 4C 20 49 4E 20 4D 4F 4E 41 43 4F 20 42    WALL IN MONACO B
02DF00:  59 20 4D 49 43 48 41 45 4C 20 53 43 48 55 4D 41    Y MICHAEL SCHUMA
02DF10:  43 48 45 52 2E 20 46 52 49 44 47 45 20 22 0D 0A    CHER. FRIDGE "..
02DF20:  09 64 62 20 22 4D 41 47 4E 45 54 2E 20 47 52 45    .db "MAGNET. GRE
02DF30:  45 54 49 4E 47 20 46 52 4F 4D 20 4E 49 50 50 4C    ETING FROM NIPPL
02DF40:  45 20 43 4C 41 4D 50 20 4F 46 20 53 54 53 2E 20    E CLAMP OF STS. 
02DF50:  48 49 20 54 48 45 52 45 2C 20 57 45 4C 43 4F 4D    HI THERE, WELCOM
02DF60:  45 20 49 4E 20 54 48 49 53 20 22 0D 0A 09 64 62    E IN THIS "...db
02DF70:  20 22 44 45 4D 4F 2C 20 49 4E 20 57 48 49 43 48     "DEMO, IN WHICH
02DF80:  20 49 20 41 4D 20 57 45 4C 43 4F 4D 49 4E 47 20     I AM WELCOMING 
02DF90:  59 4F 55 20 49 4E 2E 20 41 47 41 49 4E 2E 20 54    YOU IN. AGAIN. T
02DFA0:  48 49 53 20 49 53 20 4E 49 50 50 4C 45 20 43 4C    HIS IS NIPPLE CL
02DFB0:  41 4D 50 20 22 0D 0A 09 64 62 20 22 53 50 45 41    AMP "...db "SPEA
02DFC0:  4B 49 4E 47 2C 20 4F 52 20 52 41 54 48 45 52 2C    KING, OR RATHER,
02DFD0:  20 57 52 49 54 49 4E 47 20 48 41 21 20 48 41 21     WRITING HA! HA!
02DFE0:  20 49 4E 20 54 48 49 53 20 44 45 4D 4F 20 49 4E     IN THIS DEMO IN
02DFF0:  20 57 48 49 43 48 20 59 4F 55 20 41 52 45 20 22     WHICH YOU ARE "
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:  0D 0A 09 64 62 20 22 42 45 49 4E 47 20 57 45 4C    ...db "BEING WEL
02E210:  43 4F 4D 45 44 2E 20 47 52 45 45 54 49 4E 58 53    COMED. GREETINXS
02E220:  20 54 4F 20 54 48 45 20 45 55 52 4F 50 45 41 4E     TO THE EUROPEAN
02E230:  20 4D 45 4D 42 45 52 53 20 4F 46 20 53 54 53 2E     MEMBERS OF STS.
02E240:  20 54 48 45 53 45 20 41 52 45 20 22 0D 0A 09 64     THESE ARE "...d
02E250:  62 20 22 54 48 45 20 4D 45 4E 20 57 48 4F 4D 20    b "THE MEN WHOM 
02E260:  49 20 41 4D 20 4E 4F 57 20 57 45 4C 43 4F 4D 49    I AM NOW WELCOMI
02E270:  4E 47 2E 20 42 45 41 52 44 45 44 20 43 4C 41 4D    NG. BEARDED CLAM
02E280:  20 2D 20 4E 49 43 45 20 54 49 4E 42 41 42 55 4C     - NICE TINBABUL
02E290:  41 54 49 4F 4E 20 49 4E 20 22 0D 0A 09 64 62 20    ATION IN "...db 
02E2A0:  22 59 4F 55 52 20 43 4C 49 54 4F 52 49 53 20 44    "YOUR CLITORIS D
02E2B0:  45 4D 4F 2E 20 43 48 45 45 53 59 20 48 45 4C 4D    EMO. CHEESY HELM
02E2C0:  45 54 20 46 4C 41 4B 45 53 20 2D 20 4C 4F 4F 4B    ET FLAKES - LOOK
02E2D0:  20 46 4F 52 57 41 52 44 20 54 4F 20 53 45 45 49     FORWARD TO SEEI
02E2E0:  4E 47 20 22 0D 0A 09 64 62 20 22 59 4F 55 52 20    NG "...db "YOUR 
02E2F0:  4C 41 54 45 53 54 20 55 54 49 4C 49 54 59 2C 20    LATEST UTILITY, 
02E300:  43 48 45 45 53 45 20 43 4C 4F 4E 45 52 2E 20 50    CHEESE CLONER. P
02E310:  49 53 53 46 4C 41 50 53 20 2D 20 47 52 45 41 54    ISSFLAPS - GREAT
02E320:  20 50 45 52 53 49 53 54 49 4E 41 54 49 4F 4E 20     PERSISTINATION 
02E330:  22 0D 0A 09 64 62 20 22 4D 41 54 45 2C 20 4B 45    "...db "MATE, KE
02E340:  45 50 20 55 50 20 54 48 45 20 46 52 59 49 4E 47    EP UP THE FRYING
02E350:  20 50 41 4E 2E 20 20 20 47 41 4C 4C 4F 50 49 4E     PAN.   GALLOPIN
02E360:  47 20 4E 4F 42 20 52 4F 54 20 2D 20 4E 49 43 45    G NOB ROT - NICE
02E370:  20 53 41 4C 53 41 20 49 4E 20 59 4F 55 52 20 22     SALSA IN YOUR "
02E380:  0D 0A 09 64 62 20 22 50 52 45 54 5A 45 4C 53 21    ...db "PRETZELS!
02E390:  20 57 45 20 41 4C 53 4F 20 48 41 56 45 20 56 41     WE ALSO HAVE VA
02E3A0:  4C 55 41 42 4C 45 20 49 4E 50 55 54 20 46 52 4F    LUABLE INPUT FRO
02E3B0:  4D 20 45 57 41 52 57 4F 4F 57 4F 4F 20 57 48 4F    M EWARWOOWOO WHO
02E3C0:  53 45 20 4F 4E 4C 59 20 22 0D 0A 09 64 62 20 22    SE ONLY "...db "
02E3D0:  50 55 52 50 4F 53 45 20 49 4E 20 48 49 53 20 56    PURPOSE IN HIS V
02E3E0:  45 52 59 20 53 41 44 2C 20 44 41 52 4B 20 45 58    ERY SAD, DARK EX
02E3F0:  49 53 54 45 4E 43 45 20 49 53 20 54 4F 20 43 4F    ISTENCE IS TO CO
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 01 00 02 09 4E E5 27 00 C6 02 00 00 00 02    '.....N.'.......
02E620:  27 00 C2 02 00 00 00 02 27 00 C7 02 00 00 00 02    '.......'.......
02E630:  27 00 C3 02 00 00 00 02 27 00 C8 02 00 00 00 02    '.......'.......
02E640:  27 00 C4 02 00 00 00 02 27 00 C9 02 00 00 00 02    '.......'.......
02E650:  27 00 C5 02 00 00 00 02 27 00 C1 02 00 00 00 02    '.......'.......
02E660:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
02E670:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
02E680:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
02E690:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
02E6A0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
02E6B0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
02E6C0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
02E6D0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
02E6E0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
02E6F0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
02E700:  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    ................
02F900:  54 72 61 63 6B 2D 49 6E 66 6F 0D 0A 00 00 00 00    Track-Info......
02F910:  28 00 01 00 02 09 4E E5 28 00 49 02 00 00 00 02    (.....N.(.I.....
02F920:  28 00 45 02 00 00 00 02 28 00 41 02 00 00 00 02    (.E.....(.A.....
02F930:  28 00 46 02 00 00 00 02 28 00 42 02 00 00 00 02    (.F.....(.B.....
02F940:  28 00 47 02 00 00 00 02 28 00 43 02 00 00 00 02    (.G.....(.C.....
02F950:  28 00 48 02 00 00 00 02 28 00 44 02 00 00 00 02    (.H.....(.D.....
02F960:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
02F970:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
02F980:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
02F990:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
02F9A0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
02F9B0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
02F9C0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
02F9D0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
02F9E0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
02F9F0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
02FA00:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02FA10:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02FA20:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02FA30:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02FA40:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02FA50:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02FA60:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02FA70:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02FA80:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02FA90:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02FAA0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02FAB0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02FAC0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02FAD0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02FAE0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02FAF0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02FB00:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02FB10:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02FB20:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02FB30:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02FB40:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02FB50:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02FB60:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02FB70:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02FB80:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02FB90:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02FBA0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02FBB0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02FBC0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02FBD0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02FBE0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02FBF0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02FC00:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02FC10:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02FC20:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02FC30:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02FC40:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02FC50:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02FC60:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02FC70:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02FC80:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02FC90:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02FCA0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02FCB0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02FCC0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02FCD0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02FCE0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02FCF0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02FD00:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02FD10:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02FD20:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02FD30:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02FD40:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02FD50:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02FD60:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02FD70:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02FD80:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02FD90:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02FDA0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02FDB0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02FDC0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02FDD0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02FDE0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02FDF0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02FE00:  C3 3F 22 F3 E1 31 00 C0 E5 01 8C 7F ED 49 DD 21    .?"..1.......I.!
02FE10:  DE B2 CD FD B2 01 C0 7F ED 49 3E 14 C3 51 B3 C0    .........I>..Q..
02FE20:  01 00 5F B3 C0 20 01 00 C0 C0 5D 09 00 06 C0 01    .._.. ....].....
02FE30:  28 BF B2 C4 20 14 00 40 C1 20 05 00 C0 FF 06 7F    (... ..@. ......
02FE40:  DD 4E 00 DD 23 ED 49 DD 46 00 DD 23 DD 5E 00 DD    .N..#.I.F..#.^..
02FE50:  23 DD 6E 00 DD 23 DD 66 00 DD 23 16 01 F5 C5 D5    #.n..#.f..#.....
02FE60:  E5 DD E5 FD E5 7A CD 51 B3 7B CD C2 89 FD E1 DD    .....z.Q.{......
02FE70:  E1 E1 D1 14 14 7A FE 0B 20 02 16 02 FE 0A 20 03    .....z.. ..... .
02FE80:  1C 16 01 01 00 02 09 C1 F1 10 D2 DD 7E 00 3C 20    ............~.< 
02FE90:  AD C9 F5 C5 01 10 7F ED 49 F6 40 ED 79 C1 F1 C9    ........I.@.y...
02FEA0:  F3 31 00 01 21 00 80 CD D8 02 01 8C 7F ED 49 11    .1..!.........I.
02FEB0:  0C 30 CD 5E 01 1C 16 00 CD 5E 01 21 20 FE 22 00    .0.^.....^.! .".
02FEC0:  03 DD 21 44 01 CD 66 01 21 D0 FF CD D8 02 DD 21    ..!D..f.!......!
02FED0:  58 01 CD 66 01 DD 21 4A 01 CD 66 01 01 C0 7F ED    X..f..!J..f.....
02FEE0:  49 C3 00 03 C0 20 01 00 C0 FF C1 5D 09 00 06 20    I.... .....]... 
02FEF0:  05 00 C0 01 28 00 03 FF C4 20 14 00 40 FF 06 BC    ....(.... ..@...
02FF00:  ED 59 04 ED 51 C9 06 7F DD 4E 00 DD 23 ED 49 DD    .Y..Q....N..#.I.
02FF10:  46 00 DD 23 DD 5E 00 DD 23 DD 6E 00 DD 23 DD 66    F..#.^..#.n..#.f
02FF20:  00 DD 23 16 01 F5 C5 D5 E5 DD E5 7B CD B2 01 DD    ..#........{....
02FF30:  E1 E1 D1 14 14 7A FE 0B 20 02 16 02 FE 0A 20 03    .....z.. ..... .
02FF40:  1C 16 01 01 00 02 09 C1 F1 10 DA DD CB 00 7E 28    ..............~(
02FF50:  BE C9 32 CC 02 3D 32 B7 02 7A 32 55 02 22 CA 02    ..2..=2..z2U."..
02FF60:  01 7E FA 3E 01 ED 79 FD 21 CE 02 DD 21 BA 02 CD    .~.>..y.!...!...
02FF70:  6D 02 FD 21 CE 02 FD 7E 00 B7 20 EF 3A CD 02 B7    m..!...~.. .:...
02FF80:  20 20 3C 32 CD 02 DD 21 C7 02 CD 6D 02 FD 21 CE      <2...!...m..!.
02FF90:  02 DD 21 B8 02 CD 6D 02 FD 21 CE 02 FD CB 00 6E    ..!...m..!.....n
02FFA0:  28 EF FD 21 CE 02 DD 21 B4 02 DD 34 03 CD 6D 02    (..!...!...4..m.
02FFB0:  FD 21 CE 02 DD 21 B8 02 CD 6D 02 FD 21 CE 02 FD    .!...!...m..!...
02FFC0:  CB 00 6E 28 EF DD 21 BA 02 CD 6D 02 DD 21 B4 02    ..n(..!...m..!..
02FFD0:  FD 21 CE 02 FD 7E 03 DD BE 03 20 D1 DD 21 BD 02    .!...~.... ..!..
02FFE0:  FD 6E 03 FD 66 04 DD 75 03 DD 74 04 FD 66 06 FD    .n..f..u..t..f..
02FFF0:  7E 05 E6 F0 F6 00 DD 77 05 DD 74 06 DD 77 07 FD    ~......w..t..w..
030000:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
030010:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
030020:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
030030:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
030040:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
030050:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
030060:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
030070:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
030080:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
030090:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
0300A0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
0300B0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
0300C0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
0300D0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
0300E0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
0300F0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
030100:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
030110:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
030120:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
030130:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
030140:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
030150:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
030160:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
030170:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
030180:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
030190:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
0301A0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
0301B0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
0301C0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
0301D0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
0301E0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
0301F0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
030200:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
030210:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
030220:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
030230:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
030240:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
030250:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
030260:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
030270:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
030280:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
030290:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
0302A0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
0302B0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
0302C0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
0302D0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
0302E0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
0302F0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
030300:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
030310:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
030320:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
030330:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
030340:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
030350:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
030360:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
030370:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
030380:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
030390:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
0303A0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
0303B0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
0303C0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
0303D0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
0303E0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
0303F0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
030400:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
030410:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
030420:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
030430:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
030440:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
030450:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
030460:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
030470:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
030480:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
030490:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
0304A0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
0304B0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
0304C0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
0304D0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
0304E0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
0304F0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
030500:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
030510:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
030520:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
030530:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
030540:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
030550:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
030560:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
030570:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
030580:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
030590:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
0305A0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
0305B0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
0305C0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
0305D0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
0305E0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
0305F0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
030600:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
030610:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
030620:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
030630:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
030640:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
030650:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
030660:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
030670:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
030680:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
030690:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
0306A0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
0306B0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
0306C0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
0306D0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
0306E0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
0306F0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
030700:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
030710:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
030720:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
030730:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
030740:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
030750:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
030760:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
030770:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
030780:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
030790:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
0307A0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
0307B0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
0307C0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
0307D0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
0307E0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
0307F0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
030800:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
030810:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
030820:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
030830:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
030840:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
030850:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
030860:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
030870:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
030880:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
030890:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
0308A0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
0308B0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
0308C0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
0308D0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
0308E0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
0308F0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
030900:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
030910:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
030920:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
030930:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
030940:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
030950:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
030960:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
030970:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
030980:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
030990:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
0309A0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
0309B0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
0309C0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
0309D0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
0309E0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
0309F0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
030A00:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
030A10:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
030A20:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
030A30:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
030A40:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
030A50:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
030A60:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
030A70:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
030A80:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
030A90:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
030AA0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
030AB0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
030AC0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
030AD0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
030AE0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
030AF0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
030B00:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
030B10:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
030B20:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
030B30:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
030B40:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
030B50:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
030B60:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
030B70:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
030B80:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
030B90:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
030BA0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
030BB0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
030BC0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
030BD0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
030BE0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
030BF0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
RESULT OF SEARCH :
PRO=50   CHEA=0   COD=25   MUSI=14   COP=49   GRA=51   WRIT=119   198=41   199=26   STARTER=0   KBI=0   CAAV=0   L.TOURNIER=0  
EXTENDED CPC DSK File    SAMdisk190122)  N   ld d,(hl) ex de,hl ld de,&C000 call
 &BC77Open file  ld hl,chrset call &BC83 call &BC7ARead file in and close    .ch
rmodld hl,chrset+&380 ld bc,7 ld (hl),0Patch for soft space  ld de,chrset+&381 l
dir ret     *** RSXDISPLAY,key$    .dispicp 1 ret nzGet string address  ld l,(ix
) ld h,(ix+1)   ld a,(hl) inc hl cp 1 ret nzMust be one char long  ld e,(hl) inc
 hl   ld d,(hl) ld (retk+1),de     ld a,2 call &BC0E  ld hl,&3000 ld (crtcREAD  
  ME  ffn cursor up/down and P,  which prints), it will be returne              
        The EuroWACCI text reader    To initialise the RSXs, type            MEM
ORY &3FFF          LOAD "textread.bin"          CALL &8000    You will then have
 three brand new commands ready for action, as it  were.    ART.LOAD,"filename" 
 Load a standard Protext file into memory - maximum length 16k.    CHR.LOAD,"fil
ename"  Load a character set into TEXTREADDOCTEXTREADSRC IMAGE   SRCA ORGANISESR
C !"#ORGANISESRC$%&'()*+,-./0123ORGANISESRC4TOOLKIT SRC56789ABCDTOOLKIT SRCJEFGH
IJKLMNSDOS1   SRCOPQRSTUVWXYZSDOS1   SRCaTAMSIN  BAKhbcdefghijklmnPLUS8BITSRC op
SPELL   SRCqrstuvwxyzSPELL   SRCSPELL   SRCTAMSIN  SRCg£memory. To retain 464 co
mpatibility, the  best way to use the last two commands is a$"filename"ART.LOAD,
a$.    a$" "DISPLAY,a$  Displays the text file on screen cursor up and down to s
croll. Make  sure SPEED KEY 25,1 is set for best results.    Protext bold and it
alic commands are understood, but nothing else -  not even tabs. If a key is pre
ssed (other than cursor up/down and P,  which prints), it will be returned in a$
.    Code (c) 1997 CRTC/Systeme D.  ned in a$.    Code (c) 19-READ   ME MACBUGS 
SRCO-READ   BAK  EuroWACCI text reader  (c) 1997 CRTC/Systeme D    org &8000  wr
ite "textread.bin"  nolist    *** INITInitialise RSXs    .inirsxld a,&C9 ld (ini
rsx),a  ld bc,comt  ld hl,wksp  call &BCD1    call &B906Copy ROM characters  ld 
hl,&3900 ld de,chrset   ld bc,&0700 ldir   call &B909 call chrmod ret     .comtd
w namet  jp artli  jp chrli  jp dispi    .nametstr "ART.LOAD"  str "CHR.LOAD"  s
tr "DISPLAY"  db 0    .wkspds 4    *** RSXART.LOAD,"filename"    .artlicp 1 ret 
nz  ld l,(ix) ld h,(ix+1)Get filename  ld b,(hl) inc hl   ld e,(hl) inc hl   ld 
d,(hl) ex de,hl ld de,&C000 call &BC77Open file  push hl pop ixFiddle header  ld
 (ix+65),255 ld (ix+66),0   ld hl,&4002 call &BC83 call &BC7ARead file in and cl
ose  ld hl,&0A0D ld (&4000),hl retFake CR/LF      *** RSXCHR.LOAD,"filename"    
.chrlicp 1 ret nz  ld l,(ix) ld h,(ix+1)Get filename  ld b,(hl) inc hl   ld e,(h
l) inc hl  N   .chboldld a,i xor 2 ld i,a jr linelp     .eolineinc ixSkip LF  .w
ipelpdb &FD ld a,h cp 80 ret ncReturn if all 80 done  ld b,32 call char db &FD i
nc h jr wipelp  wipe rest of line      --- subrCharacter print  On entry, A cont
ains ASCII code, DE screen address    .charpush de   ld l,b ld h,0 add hl,hl add
 hl,hl add hl,hl   ld bc,chrset-256 add hl,bc ld c,8   ld a,(hl) ld (de),a ld a,
d add c ld d,a inc hl   ld a,(hl) ld (de),a ld a,d add c ld d,(ix)   cp &E2 jr z
,scbold   cp &E9 jr z,scital   cp &0D jr z,scrpl   jr scrlp   .scboldld a,i xor 
2 ld i,a jr scrlp   .scitalld a,i xor 1 ld i,a jr scrlp   .scrplinc ix inc ix ld
 (linetb),ix   ld a,i ld (linetb+4),a     ld hl,(linetb+7) ld de,-80 add hl,deFi
nd screen address  bit 6,h jr nz,scrsa ld de,&800 add hl,de   .scrsald (linetb+2
),hl     ld ix,(linetb+0)Print line  ld de,(linetb+2)   ld a ,(linetb+4)a inc hl
   ld a,(hl) ld (de),a ld a,d add c ld d,a inc hl   ld a,(hl) ld (de),a ld a,d a
dd c ld d,a inc hl  .charc ld a,(hl) ld (de),a ld a,d add c ld d,a inc hl   ld a
,(hl) ld (de),a ld a,d add c ld d,a inc hl   ld a,(hl) ld (de),a ld a,d add c ld
 d,a inc hl   ld a,(hl) ld (de),a  pop de inc de res 3,d ld a,255 ret    .charip
ush de   ld l,b ld h,0 add hl,hl add hl,hl add hl,hl   ld bc,chrset-256 add hl,b
c ld c,8   ld a,(hl) rra ld (de),a ld a,d add c l ld i,a call line jp displp    
 +++ sectScroll down one line    .scrdnld hl,(linetb+125) ld a,(hl)cp 26jp z,dis
plpEnd of file    ld hl,linetb+5 ld bc,125Move table  ld de,linetb   ldir     ld
 hl,(crtc) ld de,40 add hl,de res 2,hScroll down  ld (crtc),hl     ld ix,(linetb
+120)Print next line  ld de,(linetb+122)   ld a ,(linetb+124) ld i,a call line l
d a,i   ld (linetb+125),ixStore new end values  ld (linetb+127),de   ld (linetb+
12d d,a inc hl   ld a,(hl) rra ld (de),a ld a,d add c ld d,a inc hl   ld a,(hl) 
rra ld (de),a ld a,d add c ld d,a inc hl   ld a,(hl) rra ld (de),a ld a,d add c 
ld d,a inc hl jr charc    .charbpush de   ld l,b ld h,0 add hl,hl add hl,hl add 
hl,hl   ld bc,chrset-256 add hl,bc ld c,8   ld a,(hl) ld b,arraor b ld (de),a ld
 a,d add c ld d,a inc hl   ld a,(hl) ld b,arraor b ld (de),a ld a,d add c ld d,a
 inc hl   ld a,(hl) ld b,arraor b ld (de),a ld a,d add 9),a jp displp     +++ se
ctPrint article    .printld ix,&4002  .prntlpld a,(ix)  cp &90 jr z,prspc  cp &8
A jr z,prlf  cp &E9 jr z,prita  cp &E2 jr z,prbld  cp &1A jp z,displp jr prchr  
  .prspcld a," " jr prchr  .prlfld a,10  jr prchr  .pritald a,27 call dopr jp nc
,displp  ld a,(italsw) xor 1  ld (italsw),a jr prchr  .prbldld a,27 call dopr jp
 nc,displp  ld a,(boldsw) xor 3  ld (boldsw),a jr prchr  .prchrcall dopr jp nc,d
isplp  inc ix jr prntlp   ),hl    xor a ld i,a ld de,&C000 ld ix,&4002Print init
ial screen  ld iy,linetb call putval ld b,25  creating table  .initlppush iy pus
h bc call line   pop  bc pop  iy call putval djnz initlp     .displpld hl,(crtc)
Send screen address  ld bc,&BC0C out (c),c inc b out (c),h   ld bc,&BC0D out (c)
,c inc b out (c),l     call &BB06Get key  cp 240 jp z ,scrup   cp 241 jp z ,scrd
n   cp "p" jp z ,print   cp "P" jp z ,print     Print a character    .doprcall &
BD2B ret c  ld b,a  call &BB09 cp 252 ld a,b ret z jr dopr      --- subrPrint te
xt line    .linedb &FD ld h,0  .linelpld a,(ix) inc ix  cp 13  jr z ,eoline  cp 
&E0 jr nc,boldit ld b,a    ld a,i or  a call z,charNormal character  dec a call 
z,chari   dec a call z,charb   dec a call z,charbi   db &FD inc h jr linelp     
.bolditcp &E2 jr z,chboldToggle style byte  .chitalld a,i xor 1 ld i,a jr linelp
 .retkld hl,0Return keypress  ld (hl),a ret     +++ sectScroll up one line    .s
crupld hl,(linetb) ld de,&4003Start of text  or a sbc hl,de jp c,displp     ld h
l,linetb+124 ld bc,125Move table  ld de,linetb+129 lddr     ld hl,(crtc) ld de,-
40 add hl,deScroll up  bit 4,h jr nz,scrct ld de,1024 add hl,de   .scrctld (crtc
),hl     ld ix,(linetb+5) dec ix dec ixFind previous line  ld a ,(linetb+9) ld i
,a   .scrlpdec ix ld a,  Niscellaneous  0/1 text address  2/3 screen address  4 
  style byte - b0 italic, b1 bold    .linetbds 130    .crtcdw &3000CRTC register
s 12/13  .chrsetds &700Character set  .italswdb "5"Printer switches  .boldswdb "
F"   D$$$xt reader  (c) 1997 CRTC/Systeme D    org &8000  write "textread.bin"  
nolist    *** INITInitialise RSXsi  ld (iy+0),l ld (iy+1),h  ld (iy+2),e ld (iy+
3),d  ld (iy+4),a inc iyinc iyinc iyinc iyinc iy ret      *** VARIM ld c,a    ld
 a,(pos) or a jp z,nospac ld b,aDon't bother if buffer empty    .spclp ld a,(ix)
 cp 27 jr nz,notescESCape code   ld a,(ix+1) cp "P" jr z ,pica  what is it      
  cp "M" jr z ,elite           cp "E" jr z ,other           cp "F" jr z ,other  
         cp "4" jr z ,setita           cp "5" jr z ,resita           cp "-" jr z
 ,other2           cp "p" jr nz,other      ld a,(ix+2) cp "1" jr z ,prpon       
     cp  1  jr z ,prpon      ld a,(prvptc) ld de,3 jr dnptc  proportional off  .
prpon ld a,0        ld de,3 jr dnptc  proportional on  .pica ld a,12       ld de
,2 jr dnptc  pica 10cpi  .elite ld a,10       ld de,2 jr dnptc  elite 12cpi  .se
tita ld a,128 ld (italic),a ld de,2 jr dn  italics on  .resita xor a    ld (ital
ic),a ld de,2 jr dn  italics off  .other ld de,2 jr dn  other (2 characters)  .o
ther2 ld de,3 jr dn  other (3 characters)  .dnptc ld (pitch)  ImagePrint v1.0  (
c) Richard Fairhurst April 1995    org &9A00  write "image.bin"  nolist    loade
qu &7000    *** ROUTInitialise RSXs    ld bc,comt  ld hl,wksp  call &BCD1    ld 
a ,(&BD2B) ld (storig  ),a  ld hl,(&BD2C) ld (storig+1),hl  ret    .comtdw namet
  jp on  jp off    .nametstr "IP.ON"  str "IP.OFF"  db 0    .wkspds 4    *** RSX
IP.ON, IP.OFF    .onld a,&C3      ld (&BD2B),a ld hl,rout       ld (&BD2C),hl jp
 init  .offld a,(storig) ld (&BD2B),a ld hl,(storc ld d,a inc hl   ld a,(hl) ld 
b,arraor b ld (de),a ld a,d add c ld d,a inc hl  .charbc ld a,(hl) ld b,arraor b
 ld (de),a ld a,d add c ld d,a inc hl   ld a,(hl) ld b,arraor b ld (de),a ld a,d
 add c ld d,a inc hl   ld a,(hl) ld b,arraor b ld (de),a ld a,d add c ld d,a inc
 hl   ld a,(hl) ld b,arraor b ld (de),a  pop de inc de res 3,d ld a,255 ret    .
charbipush de   ld l,b ld h,0 add hl,hl add hl,hl add hl,hl   ld bc,chrset-256 a
dd hl,bc ld c,8   ld a,ig+1) ld (&BD2C),hl  ld a,27 call prn ld a,"2" call prn r
et    *** ROUTInitialisation of variables    .initld hl,chars ld (bufpos),hl  xo
r a       ld (pos),a  xor a       ld (italic),a ld (bold),a ld (underl),a  ld a,
12     ld (pitch),a ld (prvptc),a  ret    *** ROUTMain indirection routine    .r
outcp 13 jp z,emptyCarriage return  cp 10 jr z,ignoreLine feed (ignore)  push hl
No, so store in buffer   ld hl,(bufpos) ld (hl),a     inc hl ld (bufpos),hl  (hl
) ld b,arraor b rra ld (de),a ld a,d add c ld d,a inc hl   ld a,(hl) ld b,arraor
 b rra ld (de),a ld a,d add c ld d,a inc hl   ld a,(hl) ld b,arraor b rra ld (de
),a ld a,d add c ld d,a inc hl   ld a,(hl) ld b,arraor b rra ld (de),a ld a,d ad
d c ld d,a inc hl jr charbc    *** SUBRPut values in linetb (iy)    .putvalpush 
ix pop hl ld a,i  ld (iy+0),l ld (iy+1),h  ld (iy+2),e ld (iy+3),d  ld (iy+4),a 
inc iyinc iyinc iyinc iyinc iy ret      *** VARIM pop hl   ld a,(pos) inc a or a
Increase character count   ret z ld (pos),a  return unhappy if overflow  .ignore
scf retReturn "ok"    *** ROUTEmpty buffer    .emptypush bc push de push hl push
 ix push iy     ld hl,(bufpos) ld de,spacesClear unused buffer  .wipelp ld a,h c
p d jr nz,notend    ld a,l cp e jr z ,bufend   .notend ld (hl),0 inc hl jr wipel
p   .bufend   Stage 1 - assess spacing     ld ix,chars ld iy,spacesStart   ld a,
(pitch)  N inc iyNext buffer position  .prnctdec b jp nz,prnclpLoop...  .noprinx
or a call prngraFinish off bold  xor a call prngra   call emptygEmpty graphics b
uffer  ld a,10 call prnCR/LF  ld a,13 call prn ret  and quit      *** SUBRCalcul
ate character spacing for (IX) into A  Low  nibble - number to print  High nibbl
e - where to start printing    .getprppush ix   ld a,(ix) cp " " jr z ,gpspacSub
stitute "A" for space      cp 160 jr nz,gpnots   .gpsd a,16 ld (underc),a   ld c
,11 ld hl,load+36 call print ld a,0  ld (underc),a     ld hl,chars ld (bufpos),h
l   xor a       ld (pos   ),a  pop iy pop ix pop hl pop de pop bc  scf ret    **
* SUBRPrint a line of characters  using data from HL, character spacing C 1/216"
    .printld a,27  call prnSend line spacing code  ld a,"3" call prn   ld a,c   
call prn   ld (base),hl     ld ix,chars ld iy,spacesStart  ld a,(pos) or a jp z,
noprin ld b,aSkip if bupac ld a,"A"     .gpnots sub 32 ld l,a ld h,0Get base add
ress   add hl,hl add hl,hl add hl,hl    add hl,hl push hl   add hl,hl    pop de 
   add hl,de ld de,load    add hl,de push hl pop ix      ld d,0Find where to sta
rt  .getstl ld a, (ix) or (ix+12)    or (ix+24) or (ix+36) jr nz,gotst    inc d 
inc ix    ld a,d cp 11 jr nz,getstl    ld e,12 jr gotend   .gotst    ld e,dPrint
 how many  .getlnl ld a, (ix) or (ix+12)ffer empty    ld a,(underl) or a jr z,pr
nclpSwitch underline on if needed  ld a,(underc)   .putundld (underm+1),a     .p
rnclpld a,(ix)   cp 27  jp nz,pntescESCape code  ld a,(ix+1) cp "P" jr z ,skip2P
itch (skip)       cp "M" jr z ,skip2        cp "p" jr z ,skip3        cp "E" jr 
z ,setbldBold       cp "F" jr z ,resbld        cp "-" jr nz,skip2Underline  ld a
,(ix+2) cp "1" jr z ,setund        cp  1  jr z ,setund   xor a  ld (underl),a   
 or (ix+24) or (ix+36) jr z,gotend    inc e inc ix    ld a,e cp 12 jr nz,getlnl 
  .gotend   inc e inc e inc e ld a,e sub dCombine into one byte   cp 12 jr c,wid
eok ld a,12   .wideok rrc d rrc d rrc d rrc d or d   pop ix ret    *** SUBRPrint
 graphics using graphics buffer    .prngrald (char),aBold transformation  ld a,(
bold) or a ld a,(char) jr z,nobotr   ld b,a ld a,(last ) or b   ld b,a ld a,(las
t2) or b     .nobotrld hl,(g ld (underm+1),aUnderline off          ld de,3 jr dn
ct   .setundld a,(underc) ld (underm+1),aUnderline on  ld a,1 ld (underl),a ld d
e,3 jr dnct   .resbldxor a  ld (bold  ),a ld de,2 jr dnctBold off  .setbldld a,1
 ld (bold  ),a ld de,2 jr dnctBold on  .skip2ld de,2 jr dnctOther (2 characters)
  .skip3ld de,3 jr dnctOther (3 characters)  .dnctadd ix,de add iy,deSkip past c
haracters  ld a,b sub e ld b,a inc b jp prnct     .pntescld a,(ix) sub 32rapos) 
ld (hl),a inc hlStore in buffer  ld a ,(grasnt) inc a cp 127 jr nz,prnokBuffer f
ull  ld b,127Yes, so empty  .senditld a ,27 call prn ld a,"Z" call prn   ld a ,b
  call prn ld a,0   call prn   ld hl,grabuf   .prne1lld a,(hl) inc hl call prn d
jnz prne1l   ld hl,grabuf xor a  and reset  .prnokld (grapos),hl ld (grasnt),aSt
ore new position    ld a,(last) ld (last2),aBold transformation  ld a,(char) ld 
(last ),a ret     *** SGet character base address   ld l,a ld h,0 add hl,hl add 
hl,hl    add hl,hl add hl,hl push hl    add hl,hl pop de add hl,de    ld de,(bas
e) add hl,de   ld a,(iy) and &F0Adjust to correct start  .stttlp or a jr z,gotst
t     inc hl sub &10 jr stttlp    .gotstt  push bc ex de,hlPrint character   ld 
a,(iy) and &F ld c,a   .pbitlp ld a,(de) inc de   .underm or 0 call prngra    de
c c jr nz,pbitlp   pop bc     inc ix,a ld c,a  store new pitch  .dn add ix,de ad
d iy,de  advance through buffer   ld a,b sub e ld b,a inc b jr spcct       .note
sc ld d,a ld a,(italic) add d ld (ix),aConvert to italics   ld a,c or a call z,g
etprpGet proportional value   ld (iy),a inc iy inc ixStore space in buffer  .spc
ct dec b jp nz,spclpLoop  .nospac   Stage 2 - print lines     ld c,1  ld hl,load
    call print   ld c,20 ld hl,load+12 call print   ld c,1  ld hl,load+24 call p
rint l  Nor in opening    .openercall &BC7D call &928D  call stats call card  jp
 keys      +++ ROUTSave database    .saveld h,31 ld l,80  ld d,18 ld e,44  call 
&923F  call &9281  call &928A  ld de,79 call &9278    ld hl,savetx call &9203  l
d d,33 ld e,108 or a  ld c,13 ld hl,fname call &9272  jp c,saveer    ld b,c ld h
l,fnameOpen file  ld de,&C000 call &BC8C jp nc,saveer   ld hl,(lastad) ld de,fna
me or aSave  sbc hl,de ex de,hl  calculate length  ld hl,fname ld bc,  Desktop O
rganise  catalogue/archive system for DES  (c) Richard Fairhurst 1994    org &30
00  write "cat.bin"  nolist    v1.1  - name checking on restore          format 
option  v1.11 - bug fix (.stats2 entry point added)    *** INITDES loader    db 
"DES APPLICATION"  dw &3000    push bc push hl   call mcode  pop hl pop bc  jp &
1B    *** INITScreen initialisation    .mcodeld b,7 ld hl,mainfnOpen "MAIN.FN"  
ld de,&C000 call &BC77   ld hl,fname call &BC83Load UBREmpty graphics buffer    
.emptygld a,(grasnt) or a ret z ld b,a jr sendit    *** SUBRPrint character    .
prnpush bc ld c,a  .prntry ld a,c call storig jr nc,prntry  pop bc ret    *** VA
RSMiscellaneous    .storigds 3Original &BD2B routine  .basedw loadBase of charac
ters for this run    .bufposdw charsPosition in buffer  .posdb 0Number of charac
ters written    .pitchdb 0Character pitch (10/12/0prpn.)  .prvptcdb 0Previous ch
aracter pitch  .bolddbfile  call &BC7A    ld a,(lstrec) call stats2  add hl,de l
d (lastad),hl    ld de,79   call &9278  ld hl,mbar call &9245  call stats call c
ard    Initialise click zones    .keyscall &92C0Clear all click zones  ld b,19 l
d hl,zones  call &92C3Set up click zones  ld b,13 ld hl,kzones call &92CCSet up 
shortcut keys    *** SECTMain loop    .mousecall &9269Wait for release of click 
keys  .mnccall &9263Mouse routine  .selectcp 1  jp  z,file  cp 2  jp  z,disc  cp
 3 0Bold  .italicdb 0Italics  .curitadb 0Italics (character assessment)  .underl
db 0Underline  .undercdb 0Underline (OR byte to use)    .lastdb 0Last character 
       (bold)  .last2db 0Character before that (bold)  .chardb 0Current characte
r     (bold)    *** VARSGraphics buffer    .grasntdb 0Number of characters sent 
 .graposdw grabufPosition in buffer  .grabufds 128Buffer    *** VARSCharacter/sp
acing buffers    .charsds 2  jp  z,searchcp 4  jp  z,archiv  cp 5  jp  z,open  c
p 6  jp  z,save  cp 8  jp  z,login cp 9  jp  z,update  cp 10 jp  z,prrec cp 11 j
p  z,goto  cp 12 jp  z,driveacp 13 jp  z,driveb  cp 14 jp  z,find  cp 15 jp  z,n
ext  cp 16 jp  z,createcp 17 jp  z,restor  cp 18 jp  z,fcdn cp 19 jp  z,fcup  cp
 7  ret z       jp mouse    *** MENUFile menu    .fileld hl,mfile ld de,ifile  c
all &927E jp c,select cp &FF jp z,mouse  cp 1 jp  z,open  cp 2 jp  z,save  cp 35
6  .spacesds 256  (c) Richard Fairhurst April 1995    org &9A00  write "image.bi
n"  nolist    loadequ &6600    *** ROercdb 0Underline (OR byte to use)    .lastd
b 0Last character        (bold)  .last2db 0Character before that (bold)  .chardb
 0Current character     (bold)    *** VARSGraphics buffer    .grasntdb 0Number o
f characters sent  .graposdw grabufPosition in buffer  .grabufds 128Buffer    **
* VARSCharacter/spacing buffers    .charsds 2 jp  z,ascii  cp 4 jp  z,print  cp 
6 ret z  jp file      +++ ROUTOpen database    .openld h,31 ld l,80  ld d,18 ld 
e,44  call &923F  call &9281  call &928A  ld de,79 call &9278    ld hl,opentx ca
ll &9203  ld d,33 ld e,108 or a  ld c,13 ld hl,fname call &9272  jp c,opener    
ld b,c ld hl,fnameOpen file  ld de,&C000 call &BC77 jp nc,opener   ld hl,fname c
all &BC83 jp nc,openerLoad file  call &BC7A    ld a,(lstrec) call stats2  add hl
,de ld (lastad),hl    Err  Np afPrint to disc  ld hl,lstrec cp (hl) jp z,keys   
inc a jr prnlp  and loop        *** SUBROutput disc catalogue  On entry, A conta
ins disc number  Routine at pchar should output a character    .outputcall recad
d  push hl call string pop hlPrint title  call crlf ld de,32 add hl,de   push hl
 ld b,(hl)Print number of files   ld l,(hl) ld h,0 call prhl    ld hl,files call
 string    ld a,"," call pchar    ld a," " call pchar   pop hlMENUDisc menu    .
discld hl,mdisc ld de,idisc  call &927E jp c,select cp &FF jp z,mouse    cp 1 jp
 z,login  cp 2 jp z,update  cp 4 jp z,prrec  cp 5 jp z,goto  cp 7 jp z,drivea  c
p 8 jp z,driveb  jp disc    +++ ROUTLog in new disc    .logincall memchk    jp n
c,mouse  ld hl,(lastad) ld (hl),0  ld d,h ld e,l inc de ld bc,48 ldir  ld hl,(la
stad) call logsub ld (lastad),hl    ld a,(lstrec) inc a  ld (lstrec),a ld (curre
c),a  call recadd call card  jp mouse      +++ ROU inc hl   push hlPrint k free 
  ld e,(hl) inc hl    ld d,(hl) ex de,hl call prhl    ld hl,free call string   p
op hl inc hl inc hl call crlf   push hlPrint format   ld a,(hl) call pform call 
string    ld hl,fform       call string   pop hl inc hl   push hlPrint archive  
 ld a,(hl) or a jr z,pnarc    push af ld hl,adisc call string  archive...   pop 
 af ld l,a ld h,0 call prhl      jr pnarcd     .pnarc ldTUpdate disc    .updatec
all memchk jp nc,mouse    call stats add hl,de ex de,hlFind out length to copy  
ld hl,(lastad) or a sbc hl,de   ld (length),hl ld a,h or l  lengthbytes after re
cord  jr z,dolog     call stats ld de,&C25Find out destination  add hl,de ld (de
st),hl  destlocation for next,         leaving maximum space    call stats add h
l,deFind out source  ld de,(dest) ld bc,(length) call ldds...and copy it    .dol
ogcall stats call logs hl,fntarc call string  not archived  .pnarcdpop hl call c
rlf call crlf  ld de,13 add hl,de    ld c,0 ld a,b or a jr z,eooutAny files  .pl
olpld c,5Print line (outer loop)  .plilpcall opfn  print filename (inner loop)  
ld a," "  call pchar     ld a," "  call pchar     dec b  jr z ,eoout    any file
s left  dec c  jr nz,plilp     call crlf jr    plolp     .eooutld a,c or a call 
nz,crlf  call crlf ret    .pchards 3    .pdiscp0  origin and execution address  
ld a,2 call &BC98 jp nc,saveer  filetype  call &BC8FClose    .saveercall &BC92 c
all &928D  call stats call card  jp keys      +++ ROUTSave as ASCII    .asciild 
h,31 ld l,80  ld d,18 ld e,44  call &923F  call &9281  call &928A  ld de,79 call
 &9278    ld hl,savetx call &9203  ld d,33 ld e,108 or a  ld c,13 ld hl,fname ca
ll &9272  jp c,ascerr    ld b,c ld hl,fnameOpen file  ld de,&1000 call &BC8C jp 
nc,ascerr     ld a,&C3 ush ix call &BC95 pop ix ret cOutput to disc  ld a,&C9 ld
 (pchar),a  if disc error, close  push af push bc push de push hl      call &BC9
2     pop hl pop de pop bc pop af ret     .prnpush afOutput to printer   call &B
D2B jr c,prnok   pop af jr prn   .prnokpop af ret       --- subrOutput string   
 .stringld a,(hl) or a ret z  call pchar inc hl jr string    --- subrOutput 12-c
haracter filename    .opfnpush bc ld b,12  .opfnlp l   ld (pchar+0),aSet up prin
ting to disc  ld hl,pdisc ld (pchar+1),hl   xor aRecord 0  .asclppush af call ou
tput pop afPrint to disc  ld hl,lstrec cp (hl) jr z,asccls   inc a jr asclp  and
 loop    .ascclscall &BC8FClose    .ascerrcall &BC92 call &928D  call stats call
 card  jp keys      +++ ROUTPrint database    .printcall &92BD jp nc,keys  ld a 
,&C3  ld (pchar+0),a  ld hl,prn  ld (pchar+1),hl    xor aRecord 0  .prnlppush af
 call output pod a,(hl) inc hl and 127   call pchar djnz opfnlp  pop bc ret    -
-- subrCR/LF    .crlfld a,13 call pchar  ld a,10 jp   pchar    --- subrOutput HL
 as (up to) 5-digit decimal    .prhlld c,0  ld de,10000 call prhlr  ld de,1000  
call prhlr  ld de,100   call prhlr  ld de,10    call prhlr  ld de,1     ld c,1  
.prhlrxor a  .prhllpscf ccf sbc hl,de jr c,prhlo  inc a jr prhllp  .prhloadd hl,
de or a jr nz,prhly cp c ret z  .prhlyld c,1 add &30 call pchar ret          ***
   Nm    .lbfakeds 256        +++ ROUTChange drive    .driveald e,0 call &92A5 j
p mouse  .drivebld e,1 call &92A5 jp mouse            *** MENUSearch menu    .se
archld hl,msearc ld de,isearc  call &927E jp c,select cp &FF jp z,mouse  cp 1 jp
 z,find  cp 2 jp z,next  jp search    +++ ROUTFind filename    .findld h,31 ld l
,80  ld d,18 ld e,44  call &923F  call &9281  ld de,79 call &9278  ld a,1 call &
927BUpper case    ld hl,findtx call &9203  ld d,33 ld e,108 or a  ld  lddr ret  
    +++ ROUTPrint disc    .prreccall &92BD jp nc,keys  ld a ,&C3  ld (pchar+0),a
  ld hl,prn  ld (pchar+1),hl    ld a,(currec)  call output  jp keys        +++ R
OUTGo to disc    .gotold h,21 ld l,60Initialise window  ld d,38 ld e,80 call &92
3C   ld h,22 ld l,66 call &9224Print "select disc"  ld hl,gototx call &9203   ca
ll &92C0Clear all click zones  xor a ld (status+7),aStarting at record 0  ld ix,
statusSet up list box  ld a,(lstrec) inc a c,12 ld hl,pname call &9272  jp c,fin
dqt  call expand    xor a ld (currec),aRecord 0         ld (isearc),a"Find next"
 enabled    .fdloopcall statsFind record  ld de,32 add hl,de ld b,(hl)Get length
  ld a,b or a jp z,nxtdscSkip if no files  ld de,17 add hl,deExamine  call exam 
jp nc,findqt  quit if found  .nxtdscld a,(lstrec) ld c,aIs this the last record 
 ld a,(currec) cp c jr z,notfnd  yes, so quit  inc a ld (currec),a jr fdloop  no
 , so loo  ld b,15 ld c,8   ld de,lbfake   ld h,36 ld l,64   call &92F3   call l
stsubDisplay the list box!    .listmscall &9269Wait for release of click keys  c
all &9263Mouse routine  cp 1 jp z,listsl  cp 2 jp z,listup  cp 3 jp z,listdn  .l
istbpcall &92D2 jp listms    .listupld a,(status+7) or a jp z,listms  ld ix,stat
us call &92ED  call lstsub jp listms  .listdnld a,(status+7) add 7 ld c,a  ld a,
(status+1) cp c  jp z,listms  ld ix,status call &92F0  cp    .notfndld hl,nfndtx
 ld a,&82 call &9248"File not found"  ld a,2 ld (isearc),a  disable "find next" 
 .findqtxor a call &927BQuit  call stats call card   ld a,(lstrec) ld c,aAre we 
on the last record  ld a,(currec) cp c jp nz,keys   ld a,2 ld (isearc),a jp keys
  if so, disable "find next"      --- subrExamine B filenames at HL to see if en
ame occurs  Return NC if yes, C if not    .examld c,12 ld ix,ename ld d,1  .exam
lpld a,(ix)          cp "" jall lstsub jp listms    .listslld a,c sub 66  srl a 
srl a srl a ld c,a  ld a ,(status+7) add c  ld bc,(lstrec  ) inc c cp c jp nc,li
stbp  ld (currec),a  call recadd call card  jp keys        --- subrList display 
substitute    .lstsubld a,(status+7) ld c,a  ld a,(status+1) sub c ld e,a  ld b,
37 ld c,66 ld a,(status+7)  .lstslppush af   push de call recadd pop de call loc
ate   push bc call str17  pop bc   dec e  jr z,lstsqt   ld a,c add 8 ld c,a   cp
 130 jr z,lstsqt r z,examctCompare filename  ld e,(hl) res 7,e cp e   jr z,examc
t   ld d,0  does not match  .examctinc ix inc hl   dec c jr nz,examlp     ld a,d
 cp 1 ret zReturn NC if yes  djnz exam scf retLoop through all filenames      --
- subrExpand filename at pname to ename    .expandld hl,ename   ld (hl),32  ld d
e,ename+1 ld bc,11 ldir    ld ix,pname ld b,0  ld iy,ename ld (iy+8),"."    .exl
p1ld a,(ix) inc ixInitial part of filename  or a    ret z pop af inc a jr lstslp
  .lstsqtpop af ret    .locatepush hl   ld h,b ld l,c call &9224  pop hl ret    
.str17ld b,17  .str17lld a,(hl) or a ret z  call &9200 inc hl djnz str17l  ret  
    *** DATAList-box fake (stupid DES restrictions...!)    .statusdb 17Width of 
list box  db 0Number of entries in list  db 8Number displayed at once  dw lbfake
Address of strings  db 36X co-ordinate  db 66Y co-ordinate  db 0Top visible item
 in list  db 0Currently selected iteub ex de,hlLog disc    ld bc,(length) ld a,b
 or cCopy back to normal  jr z,dostat ld hl,(dest) ldir   .dostatld (lastad),de 
call stats call cardPrint new card  jp mouse    .destdw 0Temporary destination v
ariable  .lengthdw 0Temporary length variable    --- subrEmulate LDDR, but with 
LDIR parameters  On entry, HL  where to copy from    DE  where to copy to    BC 
 number of bytes to copy    .lddsadd hl,bc dec hl ex de,hl  add hl,bc dec hl ex 
de,hl   Nack, drive, address  .readtpld c,0Sector (self-modifying)  .readlpcall 
&9293 inc c ld a,cRead sector  push de ld de,512 add hl,de pop de  next address 
 and &F cp 10 jr nz,readlp  loop if not 9 sectors  ld iy,&1600 ret    --- subrIn
itialise compression buffer    .initcmld hl,&2800 ld (writcp),hl  ret    --- sub
rWrite A to compression buffer  does not corrupt any registers    .writcmpush af
 push hl   ld hl,(writcp) ld (hl),aPoke it   inc hl ld (writcp),hlreaer     .upd
entld e,1 call &92A5Drive B  push ix pop hl ld de,37 add hl,deOpen file for outp
ut  ld de,&C000 ld b,12 push ix   call  &BC8C pop ix jp nc,creaer   call initcmI
nitialise its buffer  call &9326Hold ESC for abort  ld h,23 ld l,37 call &9224Pr
int "restoring"  ld hl,crewtx call &9203     ld a,"I" call writcm ld a,"m" call 
writcmWrite file identifier  ld a,"a" call writcm ld a,"g" call writcm   ld a,"e
" call writcm ld a,0   call   cp "."  jr  z ,doext   cp "*"  jr  z ,dofl1   cp "
 "  jr  z ,exlp1   ld (iy),a inc iy inc b   bit 3,b jr  z ,exlp1   .dofl1bit 3,b
 jr  nz,exlp1 ld (iy),""Expand *  inc iy inc b jr dofl1     .doextld iy,ename+9 
ld b,9Extension  .exlp2ld a,(ix) inc ix   or a   ret z   cp "*" jr z,dofl2   cp 
" " jr z,exlp2   ld (iy),a inc iy inc b   ld a,b cp 12 ret z jr exlp2   .dofl2ld
 a,b cp 12 ret z ld (iy writcm   ld a,(readtp+1) call writcmWrite format  push i
x pop hl ld b,32Write title  .wrttlpld a,(hl) call writcm inc hl djnz wrttlp    
 ld b,0First track  ld (stacks),spStore stack for abort  .croulpcall readtr call
 restpcRead track  .crinlpld de,&27FC call cpiyde jr nc,wrbyteIf past RLE stage,
 write 1 byte  ld a,(iy)   cp (iy+1) jr nz,wrbyteIs RLE applicable       cp (iy+
2) jr nz,wrbyte        cp (iy+3) jr nz,wrbyte   push af ld a,&E9 ),""Expand *  i
nc iy inc b jr dofl2     --- routFind next if enabled (for keyboard)    .nextld 
a,(isearc) or a jp nz,mouse  ld hl,currec inc (hl) jp fdloop      *** MENUArchiv
e menu    .archivld hl,marchv ld de,iarchv  call &927E jp c,select cp &FF jp z,m
ouse  cp 1 jp z,create  cp 2 jp z,updarc  cp 3 jp z,delete  cp 5 jp z,restor  jp
 archiv      +++ ROUTCreate archive    .createld de,79 call &9278Input restricti
ons  ld a ,1  call &927BUpper case  call &9call writcm pop afYes, so write &E9  
ld de,4 add iy,de ld c,4So far, one occurrence  .rlelpld de,&2800 call cpiyde jr
 z ,wrtrle  write if end of track   cp (iy) jr nz,wrtrle  write if byte differen
t  inc c inc iy jr nz,rlelp  else carry on checkin'!  .wrtrlepush af ld a,c call
 writcmWrite the length  pop  af call writcmWrite the byte!  jr crinctAnd re-ent
er main loop.    .wrbyteld a,(iy) call  writcm inc iyWrite byte  cp &E9  jr nz,c
rinct  is it28ACheckOn  call &9281Clear input  call pdrivePreserve disc drive   
 call stats push hl pop ix  ld a,(ix+36) or a jp nz,alredyAlready archived  ld a
,(ix+35) cp 3 jp nc,wrongfWrong format    ld h,22 ld l ,80Which archive disc  ld
 d,36 ld e ,40 call &923F   ld hl,creatx call &9203   ld h,53 ld l ,96 ld a,2 or
 a   ld bc,1 ld de,99 push ix call &926F   pop ix  jp c,creaer ld (ix+36),l  qui
t if ESC pressed    ld hl,cre2tx call &9203Und &E9  ld a,1  call  writcm    if s
o, &E9 &01  .crinctld de,&2800 call cpiyde jp nz,crinlpLoop if not end of track 
   ld a,66 call &BB1E jp nz,creaerQuit if ESC held  inc bNext track  ld a,b cp 4
0 jp nz,croulp     ld a,&E9 call writcmWrite end bytes  ld a,&03 call writcm   c
all emptcmEmpty buffer  call &BC8F...and close output file  jp creaqt...and quit
 this mode    --- subrRead track B into buffer    .readtrld d,b ld e,0 ld hl,&16
00Trer what filename  push ix pop hl ld de,37 add hl,de   ld d,40 ld e,104   ld 
c,8  or a push ix call &9272   pop ix  jp c,creaer   ld b,0  add hl,bc  fill wit
h spaces  .crslpbit 3,c jr nz,crsdne     ld (hl)," " inc hl inc c jr crslp     .
crsdneld (hl),"." inc hl  add file extension  ld (hl),"I" inc hl     ld (hl),"M"
 inc hl     ld (hl),"G"       ld a,(ix+36) push ix call insdscInsert correct dis
c, please  pop ix jp c,c  Nrent drive  jp keys      --- subrRequest disc A  C if
 cancelled, NC if ok    .insdscld hl,instxt ld a,12Please insert disc  ld bc,okb
ut  ld de,canbut   call &9248   ret c     ld e,1 call &92A5Drive B  call &928D o
r aCheckOff  call &9299 push afScanFormat  call &928A pop afCheckOn  cp 3 jr z,t
rya cp 4 jr z,tryaOk if D1, D10, D2, D20  cp 5 jr z,trya cp 6 jr z,trya   call &
92D2 jr insdscElse try again    .tryald e,0 call &92A5Drivl jp nc,restqt     cal
l &BC80 cp "I" jp nz,notimgCheck it's an image file  call &BC80 cp "m" jp nz,not
img   call &BC80 cp "a" jp nz,notimg   call &BC80 cp "g" jp nz,notimg   call &BC
80 cp "e" jp nz,notimg   call &BC80 or a   jp nz,notimg   call &BC80 ld (writtr+
1),a   call &BC7AClose file while formatting    ld e,0 call &92A5Drive A  ld a,(
writtr+1)Format  ld d,1 cp &C1 jr z,doform ld d,2   .doformld a,d ld hl,0 call &
9287     lde A  call &928D or aCheckOff  call &9299 push afScanFormat  call &928
A pop afCheckOn  cp 1 jr z,trydt cp 2 jr z,trycpOk if Data or CP/M  call &92D2 j
p insdscElse try again    .trydtld (ix+35),a ld a,&C1 ld (readtp+1),a ret  .tryc
pld (ix+35),a ld a,&41 ld (readtp+1),a ret    --- subrPreserve current disc driv
e    .pdrivecall &929F ld a,e ld (rdrive+1),a ret    --- subrRestore current dis
c drive    .rdriveld e,0 jp &92A5        +++ ROUTUpdate archive    e,1 call &92A
5 jp nc,restqtDrive B  ld h,23 ld l,37 call &9224Print "restoring"  ld hl,resttx
 call &9203     call stats ld de,37 add hl,deOpen file again  ld b,12 ld de,&C00
0 call &BC77   jp nc,restqt call initcm   call read2k ld b,39   .swallocall read
cm djnz swallo     ld b,0Track 0  .rsoulpld iy,&1600 call restpcStart of sector 
buffer  .rsinlpcall readcm cp &E9 jr nz,simpleIs it &E9  call readcm cp 1   jr z
 ,simpe9  simple &E9 byte  .updarcld a,&C9 ld (delqt),a  call delent  call stats
 push hl pop ix  jp   updent      +++ ROUTDelete archive    .deletexor a ld (del
qt),a  .delentcall &928ACheckOn  call &9281Clear input  call pdrivePreserve disc
 drive    call stats push hl pop ix  ld a,(ix+36) or a jp z,cntdelNot archived  
call insdsc  jp c,delqtInsert disc please    ld e,1 call &92A5Drive B  push ix p
op hl ld de,37 add hl,dePrepare parameter block  ld (delstr+1),hl push ixNext ad
dress   ld a,h cp &30 jr z,writof  overflows buffer  pop hl pop af ret    no, so
 return    .writof call emptcm jr nc,empterEmpty buffer   call initcmRestart it 
 pop hl pop af ret...and return  .empterld sp,(stacks) jp creaerOn error, clear 
stack, return    .emptcmpush bc push de push ixWrite 2k using CAS OUT DIRECT   l
d hl,&2800 ld bc,0    ld de,&0800 ld a ,&16 call &BC98   pop ix pop de pop bc   
ret       --- subrCompare I   ld hl,delcmd call &BCD4 ld a,1Find command  ld ix,
delpar call &1BExecute it  pop ix jp delqt    .delcmdstr "ERA"  .delpardw delstr
  .delstrdb 12  dw 0    --- sectQuit deleting image    .cntdelld a,&82 ld hl,not
atx call &9248 jp delqt    .delqtnop&C9 when called by "update"  ld (ix+36),0Res
et archive byte  call stats call cardQuit delete mode  call &928D  CheckOff  xor
 a call &927B  lower case  call &BC7D call rdrive  abandon input, restoY with DE
    .cpiydepush hl   or a push iy pop hl   sbc hl,de  pop hl ret      --- sectQu
it creating archive    .alredyld a,&82 ld hl,alretx call &9248 jp creae2  .wrong
fld a,&82 ld hl,wrngtx call &9248 jp creae2    .creaercall statsCancel archive b
its  push hl pop ix ld (ix+36),0   .creae2call &BC92  abandon output file    .cr
eaqtcall stats call cardQuit create mode  call &928D  CheckOff  xor a call &927B
  lower case  call rdrive  restore curre drive  jp keys          +++ ROUTRestore
 disc    .restorld de,79 call &9278Input restrictions  ld a ,1  call &927BUpper 
case  call &928ACheckOn  call &9281Clear input  call pdrivePreserve disc drive  
  call stats push hl pop ix  ld a,(ix+36) or a jp z ,cntrstNot archived  call in
sdsc  jp c,restqtInsert disc please    ld e,1 call &92A5Drive B  push ix pop hl 
ld de,37 add hl,deOpen input file  ld b,12 ld de,&2800 call &BC77   ld (readcp+2
),h  N   ret    --- subrCopy filename A to HL    .copyfnpush af ex de,hl   call 
&92B4 ld b,0  .cfnlp ld a,(hl) cp "." inc hl jr z,cfndot   ld (de),a inc de inc 
b jr cfnlp  .cfndot bit 3,b jr nz,cfnext   ld a," " ld (de),a inc de inc b jr cf
ndot  .cfnext ld a,"." ld (de),a inc de   ld a,(hl) or a call z,cfspc ld (de),a 
inc hl inc de   ld a,(hl) or a call z,cfspc ld (de),a inc hl inc de   ld a,(hl) 
or a call z,cfspc ld (de),a inc hl inc de  ex de,hl pop af ret    .cfestqtClose 
file and exit    --- subrRead compressed byte    .readcmpush bc push hl   ld hl,
(writcp) ld c,(hl)Peek it   inc hl ld (writcp),hlNext address   ld a,h cp &30 jr
 z,readof  overflows buffer  pop hl ld a,c pop bc ret    no, so return    .reado
f call read2kRead in buffer   call initcmRestart it  pop hl ld a,c pop bc ret...
and return    --- subrRead 2k of file    .read2kpush bc push de push ixWrite 2k 
using CAS OUT DIRECT  .readcp ld ixspcld hl,spaces ret      *** SUBRInput disc t
itle to IX    .titlescall &9281Clear input buffer  ld h,22 ld l,86Display window
  ld d,36 ld e,34 call &923F   ld hl,dname call &9203Print title  ld d,24 ld e,1
04 ld c,31 or aEdit string  push ix pop hl call &9275   ret        *** ROUTPrint
 file card for disc at HL    .cardpush hlFile card   ld h,0 ld l,16    ld d,80 l
d e,184    call &9236   pop hl   ld a,8  call &9200 call &920,0    ld (ix+64),0 
ld (ix+65),&8    ld (ix+66),0 ld hl,&2800 call &BC83   pop ix pop de pop bc   re
t     --- subrPrint percentage    .restpcld d,0 ld e,b ld hl,39 call &92FFCalcul
ate percentage  call &9329 retPrint    --- subrWrite track B    .writtrld c,0 ld
 hl,&1600Sector (self-modifying)  .writlpld e,0 ld d,b call &9296Write sector  i
nc c  ld a,c and &F  next sector  ld de,512 add hl,de  next address  cp 10  jr n
z,writlp0Backspace over close box  call &9200 ld a,32 call &9200  and wipe a bit
  push hl call &9203 pop ixTitle  ld a,1 call &920CNumber of files  ld hl,spc3  
 call &9203   ld a,(ix+32) call &9218   ld hl,files  call &9203   ld hl,spc3   c
all &9203k free  ld l,(ix+33)   ld h,(ix+34) call &921B   ld hl,free   call &920
3   ld hl,spc3   call &9203Format  ld a,(ix+35) call pform call &9203   ld hl,sp
c3   call &9203Archive disc  ld a,(ix+3  loop if not 9 sectors  ret    --- sectQ
uit restoring image    .cntrstld a,&82 ld hl,notatx call &9248 jp restqt  .notim
gld a,&82 ld hl,notitx call &9248 jp restqt    .restqtcall stats call cardQuit r
estore mode  call &928D  CheckOff  xor a call &927B  lower case  call &BC7D call
 rdrive  abandon input, restore drive  jp keys        *** SUBRLog disc in at HL 
 on return, HL contains next free byte (max. len. 3109)  resets archive bit    .
logsubpush hl6) or a jr z,fcnot  used  ld hl,adisc  call &9203  yes  ld a,(ix+36
) call &9218 jr fcadne     .fcnotld hl,notarc call &9203  no  .fcadneld a,0 call
 &920C    ld b,(ix+32) xor a ld (curdir),aNumber of files  ld de,49 add ix,de ld
 (whldir),ixFind origin of file names  ld hl,&0220Screen position  ld a,b or a j
r z,eoprntAny files left  .displpcall pfnamePrint filename  call advanc jr nc,eo
prntNext cursor position  djnz displpand loop    .eoprntGet format  .logerr scf 
call &9299    or a jr z,logerr  loop on error  pop ix   ld (ix+35),aStore it (ER
ROR TRAPPING!!!!!)  push ix call titles pop ixInput title  push ix ld a,1 ld de,
star call &92B1Scan disc  pop ix  ld (ix+32),aNumber of files   ld (ix+33),l ld 
(ix+34),hFree k on disc    push ix pop hl xor aCopy filenames to buffer  ld de,4
9 add hl,de   cp (ix+32) ret z   .logslpinc a call copyfn   cp (ix+32) jp nz,log
slp ld c,a      cp 3   jp z ,rsteof  EOF  call readcm  get byte  .exprleld (iy),
a inc iy dec c jr nz,exprle  and copy it repeatedly  jr nextun  carry on  .simpe
9ld a,&E9Simple &E9 byte  .simpleld (iy),a inc iySimple byte  .nextunld de,&2800
 call cpiyde jr nz,rsinlpInner loop  call writtrWrite track    ld a,66 call &BB1
E jp nz,restqtQuit if ESC held  inc bNext track  ld a,b cp 40 jp nz,rsoulp  loop
 if not end of disc  .rsteofcall &BC7A jp r   N          ld d,h   add hl,hl add 
hl,de ld de,49  add hl,de  pop de add hl,de  dec a jr reclp      *** DATAMiscell
aneous text    .spc3db "   ",0  .filesdb " files",0  .freedb "k free",0  .fntarc
db "not archived",0  .notarcdb "No "  .adiscdb "Archive ",0  .stardb "*"  .space
sdb "   "  .mainfndb "MAIN.DB"    .dnamedb 15,11,"DISC TITLE",14,16,0  .opentxdb
 "   ",15,11,"OPEN",14,16, 31,33,96,"Enter filename",0  .savetxdb "   ",15,11,"S
AVE",14,16, 31,33,96,"Enter filename",0  .gototxdb "Select discttom line  .coloo
p ld a,75 outer loop  .culoop ld (hl),d inc hl dec a jp nz,culoop inner loop   c
all nline dec e jp nz,coloop     pop af call &B90C retRestore ROM state    --- s
ubsNext screen line after 75 added    .nlineld bc,&7B5  add hl,bc ret nc  ld bc,
&C050 add hl,bc ret        *** ROUTScroll file card down (clicked on up arrow)  
  .fcdnld a,(curdir) or a jp z,mouseQuit if already at top  sub 5 ld (curdir),a 
   call scrdn ld b,5  ld hl,&0220 ld a,(curdcall sbar retDisplay scroll bar    -
-- subrPrint filename at IX    .pfnamecall &9224 ld c,12Locate  ld a,(ix+10) and
 128 call &9212Dim if system file  .pfloopld a,(ix) and 127 inc ixPrint filename
  call &9200 dec c jr nz,pfloop   ld a,(ix-1) and 128 jr z,notroRead only  ld a,
"*" call &9200  if so, print "*"  .notroxor a call &9212 retNot dim, and return 
   --- subrAdvance cursor position (carry if ok, NC if full up)    .advancld a,1
5 add h ld h,a ir) jp fcrow    --- subrScroll whole display down by 9 lines    .
scrdncall &B903  push af   ld hl,&C731 ld a,153   ld de,&CF81    .scrdl ld bc,75
   ldirCopy bytes   call pline ex de,hl next source line   call pline ex de,hl n
ext destination line   dec a jp nz,scrdl     ex de,hl ld de,8Blank top line  .do
loop ld a,75 outer loop  .duloop ld (hl),d inc hl dec a jp nz,duloop inner loop 
  call pline dec e jp nz,doloop     pop af call &B90C retRestor cp 77  ret nz ld
 h,2  ld a,9  add l ld l,a  cp 194 ret    --- subrDisplay scroll bar    .sbarld 
ix,(whldir) ld c,(ix-17)Get total number of records  ld a ,(curdir) ld b,aGet cu
rrent record  ld h,78 ld l,37Display scroll bar  ld d,85 ld e,152 jp &92F9      
 *** ROUTPrint format (A  1-8)    .pformld hl,fdata dec a ret z  ld hl,fcpm  dec
 a ret z  ld hl,fd1   dec a ret z  ld hl,fd10  dec a ret z  ld hl,fd2   dec a re
t z  ld hl,fd20  dec a ret z  le ROM state    --- subsPrevious screen line after
 75 added    .plineld bc,&F7B5 add hl,bc bit 6,h ret nz  ld bc,&3FB0 add hl,bc r
et      *** SUBRCheck memory to see if we're near the limit  returns C if ok, NC
 if problematic    .memchkpush de push hl   ld hl,(lastad) or a   ld de,&7E00 sb
c hl,de jr c,memret   ld de,&0500 sbc hl,de jr c,memdng   ld a,&82 ld hl,fulltx 
call &9248 or a jr memret  .memdng ld a,&82 ld hl,dangtx call &9248 scf  .memret
pop hl pop de ret      d hl,fpcwa dec a ret z  ld hl,fpcwb     ret      *** ROUT
Scroll file card up (clicked on down arrow)    .fcupld a ,(curdir) ld c,a  ld ix
,(whldir) ld a,(ix-17)  sub 90 jp c,mouseQuit if not even 90  sub c  jp c,mouse 
jp z,mouseQuit if they're all on screen  call scrupScroll display  ld a,(curdir)
 add 5  ld (curdir),a ld c,a    ld a,(ix-17) sub c sub 85 ld b,aNumber of files 
to display    ld a,(curdir) add 85 ld hl,&02B9Find filename  .fcrowpush hl   ***
 SUBRFind statistics for current record  on return, HL contains address, DE cont
ains length    .statsld a,(currec)  .stats2call recadd  push hl   ld de,32  add 
hl,de ld l,(hl) ld h,0   add hl,hl add hl,hl ld e,l    ld d,h   add hl,hl add hl
,de ld de,49  add hl,de   ex de,hl  pop hl ret        *** SUBRFind address of re
cord A into HL (corrupts DE)    .recaddld hl,disc1  .reclpor a ret z    push hl 
  ld de,32  add hl,de ld l,(hl) ld h,0   add hl,hl add hl,hl ld e,l    ld l,a ld
 h,0 add hl,hl    add hl,hl ld d,h ld e,l add hl,hl    add hl,de ld de,(whldir) 
add hl,de    push hl pop ix   pop hl call displp jp mnc      --- subrScroll whol
e display up by 9 lines    .scrupcall &B903Upper ROM off  push af   ld de,&C141 
ld a,153   ld hl,&C991    .scrul ld bc,75   ldirCopy bytes   call nline ex de,hl
 next source line   call nline ex de,hl next destination line   dec a jp nz,scru
l     ex de,hl ld de,8Blank bo  Nd start a new file.",0    .fdatadb "Data",0  .f
cpmdb "CP/M",0  .fd1db "D1",0  .fd10db "D10",0  .fd2db "D2",0  .fd20db "D20",0  
.fpcwadb "PCW 180K",0  .fpcwbdb "PCW 720K",0  .fformdb " format, ",0    *** DATA
Menu text    .mbardb "File    Disc    Search    Archive               v1.11 ",13
0," Richard Fairhurst",0      .mfiledb 1,9, 14, 6  db 1,"Open database",0  db 1,
"Save database",0  db "Save as ASCII",0  db "Print database",0  db "-",0  db 1,"
Quit",0  .ifileds 7    .mdiscdb 9,  The AA Toolkit v1.0  (c) 1994 ChaRleyTroniC 
of Discovery    a RealWorld Coding production  for Robot PD and Amstrad Action  
  org &8000  nolist  write "toolkit.rsx"    *** ROUTInitialisation    ld bc,comt
  ld hl,wksp  call &BCD1    call fnddsc jr nz,isdiscDisc drive connected  xor a 
ld (donly),a retIf not, disable disc drive commands  .isdiscld hl,rscrsx call &B
CD4 ld a,c ld (rscfar),hl ld (rscfar+2),a  ld hl,wscrsx call &BCD4 ld a,c ld (ws
cfar),hl ld (wscfar+2),a  9, 15, 8  db 1,"Log in new disc",0  db 1,"Update disc"
,0  db "-",0  db 1,"Print disc",0  db 1,"Go to disc",0  db "-",0  db "Drive ",1,
"A",0  db "Drive ",1,"B",0  .idiscds 10    .msearcdb 17,9, 9, 2  db 1,"Find file
",0  db "Find ",1,"next",0  .isearcdb 2,0    .marchvdb 27,9, 14, 5  db 1,"Create
 archive",0  db "Update archive",0  db "Delete archive",0  db "-",0  db 1,"Resto
re disc",0  .iarchvds 5    *** DATAKey zones    .zonesdb 3 ,0,6 ,9  db 11,0,14,9
  db 19,0,24,9  db 29,0,35,9  ld hl,frmrsx call &BCD4 ld a,c ld (frmfar),hl ld (
frmfar+2),a  ret    .rscrsxdb &84  .wscrsxdb &85  .frmrsxdb &86    .rscfards 3  
.wscfards 3  .frmfards 3    .wkspds 4    .comtdw namet    jp clicijp execi  jp k
eycijp putki    jp editijp doubijp writi  jp modeijp inkcijp bordi    jp framijp
 cursijp gpapi  jp cpycijp clriijp gpeni    jp memrijp dumpijp findi  jp bankijp
 bnkrijp bnkwi  jp copyijp fillijp calli  jp stafijp stbcds 52  db 78,27 ,79,36 
 db 78,190,79,199    .kzonesdb 34,5Open  db 60,6Save  db 67,7Quit  db 36,8Log in
 new disc  db 42,9Update disc  db 27,10Print disc  db 52,11Go to disc  db 69,12A
  db 54,13B  db 53,14Find  db 46,15find Next  db 62,16Create archive  db 50,17Re
store disc      *** VARIVariables    .whldirdw 0Where whole directory starts  .c
urdirdb 0First directory entry on screen  .pnameds 13Find filename (pre-expand) 
 .enameds 12",0    .findtxdb "   ",15,11,"FIND",14,16, 31,33,96,"Enter filename"
,0  .nfndtxdb "File not found.",0    .creatxdb "  ",15,11,"CREATE ARCHIVE",14,16
  db 31,24,96,"Store on which archive disc",0  .cre2txdb 31,24,104,"Enter filena
me ",0  .instxtdb "Insert archive disc into drive B",13  db "and file disc into 
drive A.",0  .okbutdb 34,"   ",1,"Ok",0  .canbutdb 62," ",1,"Cancel",0  .alretxd
b "This disc has already been archived.",13  db "Update the previous archive ins
tead.",0  .wrngtxdb "You can oFind filename (post-expand)  .lastaddw disc2First 
free place in memory  .writcpdw 0Position in compression buffer  .stacksdw 0Stac
k position for abort    --- variReloaded with each file    .fnameds 14Current fi
lename  .currecdb 0Current record  .lstrecdb 0Last record    *** VARIRecords    
.disc1db "DES development disc" ds 12Name  db 7Number of files+32  dw 0k free+33
  db 3Format (1-8)+35  db 0Archive disc+36  ds 12nly archive Data and CP/M discs
.",0  .crewtxdb "Creating archive and storing on B.",0    .notatxdb "There is no
 archive for this disc.",0  .notitxdb "The file has been corrupted in some way."
,0  .resttxdb "Restoring from drive B to drive A.",0    .dangtxdb "Memory is get
ting low. It might be a good",13  db "idea to save your database soon and start"
,13  db "on a new one.",0    .fulltxdb "There is not enough room in memory to ca
rry",13  db "out that operation. Save your current database",13  db "anArchive f
ilename+37    db "CAT     .","B"+128,"IN"Filenames+49  db "AMSTRAD .ACT"  db "CR
TC#8  .   "  db "BTL2    .B","I"+128,"N"  db "DISC    .BAS"  db "HIPPY   .COM"  
db "WALLY   .","S"+128,"P"+128,"L"      .disc2db 0Last record  t db 0Current rec
ord  .lstrecdb 0Last record    *** VARIRecords    .disc1db "DES development disc
" ds 12Name  db 7Number of files+32  dw 0k free+33  db 3Format (1-8)+35  db 0Arc
hive disc+36  ds 12  N   Copy string to buffer    .clioneld l,(ix) ld h,(ix+1)  
ld c,(hl) inc hl ld a,c ret z  ld e,(hl) inc hl  ld d,(hl) ex de,hl  ld de,cbuff
 ld b,0 ldir  ld a,255 ld (de),a  call clido ret    Actual CLI routine    .clido
ld ix,cbuff call getparGet command name  ld a,b or a ret z    push bc   ld hl,re
adin  .ucllp ld a,(hl) call ucase ld (hl),a   inc hl djnz ucllp  pop bc    dec h
l set 7,(hl)Search for it  ld hl,readin call &BCD4 jp nc,unkerr   ld a,c ld (rs"
str "FIND"  str "BANK"str "BANK.READ"str "BANK.WRITE"  str "COPY"str "FILL"str "
CALL"  str "AF"str "BC"str "DE"  str "HL"str "IX"str "IY"    File commands    st
r "TYPE"str "PTYPE"str "INFO"  str "HL.WRITE"str "HL.READ"  str "LOAD"str "DEPRO
TECT"    Disc-only commands    .donlystr "SECTOR.WRITE"str "SECTOR.READ"  str "U
SER"str "CAT"  db 0    *** RSXCLI,string    .clicinop  cp 1 jp z ,clione  or a j
p nz,parerr    Input line    .cliclld a,"" call &Bxfar+2),a ld (rsxfar),hl     l
d hl,parbuf+63 ld (parpos),hlInitialise variables  ld hl,desbuf    ld (despos),h
l   ld hl,strbuf    ld (strpos),hl ld e,0     .paloopld a,(ix) cp 255 jp z,docom
  push de call getpar pop de  ld a,b    or a  jp z,docom  call analys jr c,txtpa
r    ld iy,(parpos) ld (iy),l ld (iy+1),hNumerical parameter  dec iy dec iy ld (
parpos),iy inc e   jr paloop     .txtparpush de   ld hl,(despos) ld de,(strpos) 
  ld iy,(parpos) ld (iy)B5A    ld hl,cbuff ld de,cbuff+1  ld (hl),0 ld bc,64 ldi
r    ld hl,cbuff ld b,0  .inlpcall &BB8A  call &BB06  push af call &BB8A pop af 
   cp 13   jr z ,inret  cp 127  jr z ,indel  cp 252  jr z ,inesc  cp 32   jr c ,
inlp  bit 7,a jr nz,inlp    bit 6,b jr nz,inlp  ld (hl),a inc hl inc b  call &BB
5A jr inlp    .indelld a,b or a jr z,inlp  ld a,8  call &BB5A dec hl ld (hl),0  
ld a,16 call &BB5A dec b  jr inlp  .inescld hl,brktxt call string jp crlf  .inre
,l ld (iy+1),h   dec iy dec iy ld (parpos),iy   ld (hl),b inc hl   ld (hl),e inc
 hl   ld (hl),d inc hl ld (despos),hl   ld hl,readin ld c,b ld b,0 ldir   ld (st
rpos),de  pop de inc e jp paloop    .docomld a,&C9 ld (clici),aPrevent nesting  
ld ix,(parpos) inc ix inc ix  ld a,e rst 3,rsxfar  xor a ld (clici),a retRe-enab
le routine    Analyse parameter    .analysld iy,readinAny letters in there...  p
ush bc  .anallp ld a,(iy) cp "0" jr c ,notnum      cp ""tld a,255 ld (hl),a call
 crlf  ld a,(cbuff) cp "*" jr nz,nohidnVery indulgent message thing  push bc pus
h hl    ld ix,cbuff ld hl,0   .hidelp ld e,(ix) ld d,0 add hl,de    inc ix djnz 
hidelp    ld a,h cp 1 jr nz,notgot    ld a,l cp &24 jr z,sts    cp &B0 jr z,robo
t    cp &48 jr z,aaaah   .notgotpop hl pop bc   .nohidncall clido jp clicl    .r
obotld hl,twiff call string call crlf pop hl pop bc jp clicl  db 164,"1994 CRTC 
"   jr nc,notnum   inc iy djnz anallp  pop bc    ld iy,readin ld hl,0  .addalpld
 a,(iy) push de   add hl,hl ld e,l ld d,h add hl,hlHL  HL * 10   add hl,hl add h
l,de   sub 48 ld e,a ld d,0 add hl,deHL  HL + new number  pop de inc iy djnz add
alp  or a ret    .notnumpop bc scf retAha, found a letter, so exit    Get parame
ter    .getparld hl,readin ld de,readin+1Clear buffer  ld (hl),0 ld bc,64 ldir  
  ld hl,readin ld b,0  ld a,(ix) cp 34 jr z,invcom    .getprlld .twiffdb "It's t
wiffic!",0  .aaaahld b,40 ld a,228  .aahlpcall &BB5A djnz aahlp   call crlf pop 
hl pop bc jp clicl  .stsld iy,music ld b,9  .stslpld l,(iy+0) ld h,(iy+1) ld (to
ne),hl  ld l,(iy+2) ld h,(iy+3) ld (long),hl  inc iy inc iy inc iy inc iy  .stry
push bc ld hl,sound call &BCAA pop bc jr nc,stry  djnz stslp pop hl pop bc jp cl
icl  .sounddb 2,0,0  .tonedw 0 db 0,15  .longdw 0  .musicdw 478,30, 379,30, 319,
90  dw 284,20, 319,10, 358,20  dw 379,10, 426,30, 478,60 ijp stdei  jp sthlijp s
tixijp stiyi    jp typeijp ptypijp infoi  jp hlwrijp hlrdi  jp loadijp dproi    
jp secwijp secri  jp userijp catli    .nametstr "CLI"str "EXEC"  str "KEY"str "P
UTKEY"    Screen commands    str "EDIT"str "DOUBLE"str "WRITE"  str "MODE"str "I
NK"str "BORDER"    464 commands    str "FRAME"str "CURSOR"str "GRAPHICS.PAPER"  
str "COPY.CHR"str "CLEAR.INPUT" str "GRAPHICS.PEN"    Memory commands    str "ME
MORY"str "DUMP   N         ld a,(iy+0) or a rr a ld (iy+0),a  ld a,(iy+1) or a r
r a ld (iy+1),a  ld a,(iy+2) or a rr a ld (iy+2),a  ld a,(iy+3) or a rr a ld (iy
+3),a  ret    .wundeld a,255 ld (iy+7),a ret    .wflipld d,(iy+0) ld a,(iy+7) ld
 (iy+7),d ld (iy+0),a  ld d,(iy+1) ld a,(iy+6) ld (iy+6),d ld (iy+1),a  ld d,(iy
+2) ld a,(iy+5) ld (iy+5),d ld (iy+2),a  ld d,(iy+3) ld a,(iy+4) ld (iy+4),d ld 
(iy+3),a  ret    *** RSXDOUBLE,string    .doubicp 1 jp nz,parerr  ld a,254 call 
&BBA5 jp ncordicp 1 jp nz,parerr ld b,(ix) ld c,b jp &BC38    *** RSXWRITE,strin
g    .writicp 1 jp z ,onepar  cp 2 jp nz,parerr  ld c,(ix+2) jr writd  .oneparld
 c,0    .writdld a,255 call &BBA5 jp nc,chrerr  push hl pop iy    ld l,(ix) ld h
,(ix+1)  ld b,(hl) inc hl  ld e,(hl) inc hl  ld d,(hl) push de pop ix    ld a,b 
or a ret z    .writlld a,(ix)  cp 2  jp z,tbold  cp 20 jp z,tthin  cp 9  jp z,ti
tal  cp 21 jp z,tunde  cp 6  jp z,tflip    call &BBA5 call &B906  a,(ix)Copy to 
"read in" buffer  cp 255 ret z  cp " " jr z,exinc1  cp "," jr z,exinc1  ld (hl),
a inc b inc hl inc ix jr getprl    .invcominc ix  .invprlld a,(ix)Quoted text  c
p 255 ret z  cp 34  jr z,exinc1  ld (hl),a inc b inc hl inc ix jr invprl    .exi
nc1inc ix ld a,(ix)Remove excess space  cp 255 ret z  cp " " jr z,exinc1  ret   
 .readinds 65Where the parameter is read in    .parbufds 65Parameter buffer (IX)
  .desbufds 96String descriptor buld a,(hl) ld (iy+0),a inc hl  ld a,(hl) ld (iy
+1),a inc hl  ld a,(hl) ld (iy+2),a inc hl  ld a,(hl) ld (iy+3),a inc hl  ld a,(
hl) ld (iy+4),a inc hl  ld a,(hl) ld (iy+5),a inc hl  ld a,(hl) ld (iy+6),a inc 
hl  ld a,(hl) ld (iy+7),a call &B909    bit 0,c call nz,wbold  bit 1,c call nz,w
thin  bit 2,c call nz,wital  bit 3,c call nz,wunde  bit 4,c call nz,wflip  ld a,
255 call &BB5A    .writcinc ix dec b jp nz,writl  jp crlf    .tboldld a,c xor  1
 ld c,a jp writffer  .strbufds 65Actual string buffer  .cbuffds 65Input buffer  
  .parposdw parbuf+64Current position in parbuf  .desposdw desbufCurrent positio
n in desbuf  .strposdw strbufCurrent position in strbuf    .rsxfards 3Space for 
FAR CALL address  .brktxtdb "*Break*",0    *** RSXEXEC,filename$    .execicp 0 j
r z ,exec0  cp 1 jp nz,parerr    ld l,(ix) ld h,(ix+1)  ld b,(hl) inc hl  ld e,(
hl) inc hl  ld d,(hl) inc hl  jr execo    .exec0ld hl,default ld bc  .tthinld a,
c xor  2 ld c,a jp writc  .titalld a,c xor  4 ld c,a jp writc  .tundeld a,c xor 
 8 ld c,a jp writc  .tflipld a,c xor 16 ld c,a jp writc    .wboldld a,(iy+0) or 
a rr a or (iy+0) ld (iy+0),a  ld a,(iy+1) or a rr a or (iy+1) ld (iy+1),a  ld a,
(iy+2) or a rr a or (iy+2) ld (iy+2),a  ld a,(iy+3) or a rr a or (iy+3) ld (iy+3
),a  ld a,(iy+4) or a rr a or (iy+4) ld (iy+4),a  ld a,(iy+5) or a rr a or (iy+5
) ld (iy+5),a  ld a,(iy+6) or a rr a o,9    .execold de,buffer  call &BC77 jp nc
,error    .execolld iy,cbuff ld b,0  .execilcall &BC80 jp nc,exceof  cp 13   jr 
z ,proccr  cp 10   jr z ,dealtw  cp ""  jr z ,contrl  bit 6,b jr nz,dealtw  .dea
lld (iy),a inc iy inc b  .dealtwcp 10   jr nz,execil  call clido  jr execol    .
exceofcall &BC7A  ret    .contrlcall &BC80 jp nc,exceof and 31 jp dealHandle con
trol codes  .proccrld a,255 jp dealHandle carriage return    .default db "#EXEC.
BAT"    *** RSXKEY,token,sr (iy+6) ld (iy+6),a  ld a,(iy+7) or a rr a or (iy+7) 
ld (iy+7),a  ret    .wthinld a,(iy+0) or a rr a and (iy+0) ld (iy+0),a  ld a,(iy
+1) or a rr a and (iy+1) ld (iy+1),a  ld a,(iy+2) or a rr a and (iy+2) ld (iy+2)
,a  ld a,(iy+3) or a rr a and (iy+3) ld (iy+3),a  ld a,(iy+4) or a rr a and (iy+
4) ld (iy+4),a  ld a,(iy+5) or a rr a and (iy+5) ld (iy+5),a  ld a,(iy+6) or a r
r a and (iy+6) ld (iy+6),a  ld a,(iy+7) or a rr a and (iy+7) ld (iy+7),a  ret   
 .witaltring    .keycicp 2 jp nz,parerr  ld l,(ix) ld h,(ix+1)  ld c,(hl) inc hl
  ld e,(hl) inc hl  ld d,(hl) ex de,hl  ld b,(ix+2) call &BB0F  jp nc,keyerr ret
    *** RSXPUTKEY,character    .putkicp 1 jp nz,parerr  ld l,(ix) ld h,(ix+1)  l
d a,h or a ld a,l jp z,&BB0C    inc hl ld e,(hl)  inc hl ld d,(hl)  ld a,(de) jp
 &BB0C    *** RSXMODE, INK, BORDER    .modeicp 1 jp nz,parerr ld a,(ix) jp &BC0E
  .inkcicp 2 jp nz,parerr ld a,(ix+2) ld b,(ix) ld c,b jp &BC32  .b  Na,0 call &
BB96  pop ix    push ix ld c,8  .gcolp ld d,(ix) ld b,8  .gcilp rl d ld a," " jr
 nc,gotchr   ld a,233  .gotchr call &BB5A djnz gcilp   call crlf  inc ix dec c j
r nz,gcolp  pop ix    push ix   ld hl,&0101 ld d,128  .ekeylp push hl call &BB75
 call &BB8A pop hl   call &BB06   push af call &BB8A pop af   cp 13  jr z,eexit 
  cp 224 jr z,einvt   cp 240 jr z,eup   cp 241 jr z,edown   cp 242 jr z,eleft   
cp 243 jr z,erght   jr ekeylp    .eup ld a,l cp ync    .hlwricp 3 jp nz,parerr  
ld l,(ix+4) ld h,(ix+5)  ld e,(ix+2) ld d,(ix+3)  ld a,(ix+0) call &BC9E  ret c 
   cp 0 jp z,escerr  cp 1 jp z,ovrerr  ret    *** RSXHL.READ,source,length,sync 
   .hlrdicp 3 jp nz,parerr  ld l,(ix+4) ld h,(ix+5)  ld e,(ix+2) ld d,(ix+3)  ld
 a,(ix+0) call &BCA1  ret c    cp 0 jp z,escerr  cp 1 jp z,ovrerr  cp 2 jp z,crc
err  ret    *** RSXUSER,n    .usericp 1 jp nz,parerr  ld hl,(&BE7D) inc hl  ld a
,(ix) ld (hl),a  ret    *** RS1 jr z,ekeylp dec l dec ix jr ekeylp  .edown ld a,
l cp 8 jr z,ekeylp inc l inc ix jr ekeylp  .eleft ld a,h cp 1 jr z,ekeylp dec h 
rlc d  jr ekeylp  .erght ld a,h cp 8 jr z,ekeylp inc h rrc d  jr ekeylp  .einvt 
ld a,(ix) xor d ld (ix),a   ld c," " and d jr z,egtchr   ld c,233  .egtchr ld a,
c call &BB5A jr ekeylp    .eexit ld a,1 call &BC0E  pop ix  ld a,"&" call &BB5A 
ld a,(ix) call hexprt ld a,"," call &BB5A inc ix  ld a,"&" call &BB5A ld a,(ix) 
call hexprtXCOPY,source,destination,length    .copyicp 3 jp nz,parerr  ld l,(ix+
4) ld h,(ix+5)  ld e,(ix+2) ld d,(ix+3)  or a sbc hl,de jp c,copyd    ld l,(ix+4
) ld h,(ix+5)  ld c,(ix+0) ld b,(ix+1)  ldir ret    .copydld c,(ix+0) ld b,(ix+1
)  ld l,(ix+2) ld h,(ix+3) dec hl add hl,bc ex de,hl  ld l,(ix+4) ld h,(ix+5) de
c hl add hl,bc lddr ret    *** RSXFILL,address,length,byte    .fillicp 3 jp nz,p
arerr  ld l,(ix+4) ld h,(ix+5)  ld a,(ix+0) ld (hl),a    push hl pop de inc  ld 
a,"," call &BB5A inc ix  ld a,"&" call &BB5A ld a,(ix) call hexprt ld a,"," call
 &BB5A inc ix  ld a,"&" call &BB5A ld a,(ix) call hexprt ld a,"," call &BB5A inc
 ix  ld a,"&" call &BB5A ld a,(ix) call hexprt ld a,"," call &BB5A inc ix  ld a,
"&" call &BB5A ld a,(ix) call hexprt ld a,"," call &BB5A inc ix  ld a,"&" call &
BB5A ld a,(ix) call hexprt ld a,"," call &BB5A inc ix  ld a,"&" call &BB5A ld a,
(ix) call hexprt call crlf  ret    *** RSXFRAME    .framij,chrerr  push hl pop i
y    ld l,(ix) ld h,(ix+1)  ld b,(hl) inc hl  ld e,(hl) inc hl  ld d,(hl) push d
e pop ix    ld a,b or a ret z    .doublld a,(ix) call &BBA5 call &B906  ld a,(hl
) ld (iy+00),a ld (iy+01),a inc hl  ld a,(hl) ld (iy+02),a ld (iy+03),a inc hl  
ld a,(hl) ld (iy+04),a ld (iy+05),a inc hl  ld a,(hl) ld (iy+06),a ld (iy+07),a 
inc hl  ld a,(hl) ld (iy+08),a ld (iy+09),a inc hl  ld a,(hl) ld (iy+10),a ld (i
y+11),a inc hl  ld a,(hl) ld (iy+12),a ld (iyp &BD19    *** RSXCURSOR,system swi
tch,user switch    .cursicp 1 jr z ,curs1  cp 2 jp nz,parerr    ld a,(ix) or a c
all z,&BB7E call nz,&BB7B  inc ix inc ix  .curs1ld a,(ix) or a push af call z,&B
B84 pop af call nz,&BB81  ret    *** RSXGRAPHICS.PAPER,colour    .gpapicp 1 jp n
z,parerr  ld a,(ix) jp &BBE4    *** RSXGRAPHICS.PEN,colour    .gpenicp 1 jp nz,p
arerr  ld a,(ix) jp &BBDE    *** RSXCLEAR.INPUT    .clriicall &BB09 jr c,clrii r
et    *** RSXCOPY.CHR,+13),a inc hl  ld a,(hl) ld (iy+14),a ld (iy+15),a  ld a,2
54 call &BB5A call &B909  ld a,10  call &BB5A ld a,8  call &BB5A  ld a,255 call 
&BB5A ld a,11 call &BB5A    inc ix dec b jp nz,doubl  call crlf jp crlf    *** R
SXEDIT,character    .editicp 1 jp nz,parerr    ld l,(ix) ld h,(ix+1)  ld a,h or 
a ld a,l jr z,gotedc  ld a,(hl) inc hl  ld e,(hl) inc hl  ld d,(hl) ld a,(de)   
 .gotedccall &BBA5 jp nc,chrerr  push hl   ld a,1 call &BC0E   ld a,1 call &BB90
   ld a    .cpycicp 1 jp nz,parerr  call &BB60  ld l,(ix) ld h,(ix+1)  ld (hl),a
 inc hl ld (hl),0 ret    *** RSXSECTOR.WRITE,source,drive,track,sector    .secwi
cp 4 jp nz,parerr  ld l,(ix+6) ld h,(ix+7)  ld e,(ix+4) ld d,(ix+2)  ld c,(ix+0)
 rst 3,wscfar  ret c jp dscerr    *** RSXSECTOR.READ,source,drive,track,sector  
  .secricp 4 jp nz,parerr  ld l,(ix+6) ld h,(ix+7)  ld e,(ix+4) ld d,(ix+2)  ld 
c,(ix+0) rst 3,rscfar  ret c jp dscerr    *** RSXHL.WRITE,source,length,s  Nc po
p hl  ld a," " call &BB5A call &BB5A  push bc   ld b,16  .ddal ld a,(hl) call pc
spec   inc hl djnz ddal  pop bc  call crlf  dec bc inc e  bit 4,e jr z,nopaus   
ld e,0   call &BB81 call &BB06 call &BB84   cp &FC ret z  .nopausld a,b or c jr 
nz,dumpl  ret    *** RSXFIND,start,end,byte    .findicp 3 jp nz,parerr  ld l,(ix
+4) ld h,(ix+5)  ld d,(ix+0)    .fndlpld a,(hl) cp d jp nz,fndnot  call hexhl ld
 a," " call &BB5A  .fndnotinc hl  ld a,l cp (ix+2) jp nz,fndkwdld c,(ix+0) ld b,
(ix+1)  ld l,(ix+2) ld h,(ix+3) dec hl add hl,bc ex de,hl  ld l,(ix+4) ld h,(ix+
5) dec hl add hl,bc ex de,hl    .bnkwbld a,(de)  dec de  call ldhla dec hl  dec 
bc ld a,b or c jp nz,bnkwb  ret    *** RSXBANK.READ,source,destination,length   
 .bnkricp 3 jp nz,parerr  ld l,(ix+4) ld h,(ix+5)  ld e,(ix+2) ld d,(ix+3)  or a
 sbc hl,de jp c,bnkrd    ld l,(ix+4) ld h,(ix+5)  ld c,(ix+0) ld b,(ix+1)    .bn
kracall ldahl inc hl  ld (de),a  inc de  delp  ld a,h cp (ix+3) jp nz,fndlp  cal
l crlf  ret    *** RSXMEMORY    .memrild a,2 call &BC0E  ld de,&E030  ld hl,&000
0    .rbitold b,32    .rbitlxor a  cp (hl) inc l rl c  cp (hl) inc l rl c  cp (h
l) inc l rl c  cp (hl) inc l rl c  cp (hl) inc l rl c  cp (hl) inc l rl c  cp (h
l) inc l rl c  cp (hl) inc l rl c  ld a,c ld (de),a inc de  djnz rbitl  inc h   
 ex de,hl   ld bc,&7E0   add hl,bc jr nc,rbitok   ld bc,&C050 add hl,bc  .rbitok
ex de,hl    ld a,h c bc ld a,b or c jp nz,bnkra  ret    .bnkrdld c,(ix+0) ld b,(
ix+1)  ld l,(ix+2) ld h,(ix+3) dec hl add hl,bc ex de,hl  ld l,(ix+4) ld h,(ix+5
) dec hl add hl,bc    .bnkrbcall ldahl dec hl  ld (de),a  dec de  dec bc ld a,b 
or c jp nz,bnkrb  ret    *** RSXCALL,address    .callicp 1 jp nz,parerr  ld l,(i
x) ld h,(ix+1) push hl  .afplopld hl,0 push hl pop af  .bcplopld bc,0  .deplopld
 de,0  .hlplopld hl,0  .ixplopld ix,0  .iyplopld iy,0  ret    *** RSXAF, BC, Dcp
 &C0 jp nz,rbito    ld a,254  ld hl,&E02F ld (hl),a ld hl,&E0CF ld (hl),a  ld hl
,&E16F ld (hl),a ld hl,&E20F ld (hl),a  ld hl,&E2AF ld (hl),a ld hl,&E34F ld (hl
),a  ld hl,&E3EF ld (hl),a ld hl,&E48F ld (hl),a  ld hl,&E52F ld (hl),a ld hl,&E
5CF ld (hl),a  ld hl,&E66F ld (hl),a ld hl,&E70F ld (hl),a  ld hl,&E7AF ld (hl),
a    ld hl,&2B01 call &BB75 ld a,"0" call nprint  ld hl,&2B05 call &BB75 ld a,"2
" call nprint  ld hl,&2B09 call &BB75 ld a,"4" call nprint  ld hl,&2BE, HL, IX, 
IY    .staficp 1 jp nz,parerr ld l,(ix) ld h,(ix+1) ld (afplop+1),hl ret  .stbci
cp 1 jp nz,parerr ld l,(ix) ld h,(ix+1) ld (bcplop+1),hl ret  .stdeicp 1 jp nz,p
arerr ld l,(ix) ld h,(ix+1) ld (deplop+1),hl ret  .sthlicp 1 jp nz,parerr ld l,(
ix) ld h,(ix+1) ld (hlplop+1),hl ret  .stixicp 1 jp nz,parerr ld l,(ix) ld h,(ix
+1) ld (ixplop+2),hl ret  .stiyicp 1 jp nz,parerr ld l,(ix) ld h,(ix+1) ld (iypl
op+2),hl ret    *** RSXDUMP,start,end    .dumpicp 0D call &BB75 ld a,"6" call np
rint  ld hl,&2B11 call &BB75 ld a,"8" call nprint  ld hl,&2B15 call &BB75 ld a,"
A" call nprint  ld hl,&2B19 call &BB75 ld a,"C" call nprint  ld hl,&0101 call &B
B75  ret    .nprintcall &BB5A ld a,"0"  call &BB5A call &BB5A call &BB5A ret    
*** RSXTYPE,a$    .typeicp 1 jp nz,parerr  ld a,&21 ld (prnchr+1),aNo printing p
lease  jr typec    *** RSXPTYPE,a$    .ptypicp 1 jp nz,parerr  ld a,&CD ld (prnc
hr+1),aPrinting on  jr typec2 jr z ,dumpt  cp 1 jp nz,parerr  ld a,(ix+0) and &F
0 ld l,a ld h,(ix+1)  ld bc,8 jr dumpd  .dumptld a,(ix+2) and &F0 ld e,a ld d,(i
x+3)  ld l,(ix+0) ld h,(ix+1) or a sbc hl,de  srl h rr l srl h rr l  srl h rr l 
srl h rr l  inc hl push hl pop bc ex de,hl    .dumpdld e,0  .dumplld a,h call he
xnc  ld a,l call hexnc  ld a," " call &BB5A call &BB5A call &BB5A  push hl push 
bc   ld b,16  .ddhl ld a,(hl) call hexnc inc hl   ld a," "  call &BB5A djnz ddhl
  pop bde  ld c,(ix+2) ld b,(ix+3)  dec bc ldir  ret    *** RSXBANK,bank    .ban
kicp 1 jp nz,parerr  ld a,(ix) and &F8 or &C0 add 4  ld (bnkp1+3),a  ld (bnkp2+3
),a ret    *** RSXBANK.WRITE,source,destination,length    .bnkwicp 3 jp nz,parer
r  ld l,(ix+4) ld h,(ix+5)  ld e,(ix+2) ld d,(ix+3)  or a sbc hl,de jp c,bnkwd  
  ld l,(ix+4) ld h,(ix+5)  ld c,(ix+0) ld b,(ix+1) ex de,hl    .bnkwald a,(de)  
inc de  call ldhla inc hl  dec bc ld a,b or c jp nz,bnkwa  ret    .bn  N-F  .hex
byeadd 48 call &BB5A  ld a,c djnz hexmsk  ret    *** SUBR2-byte hex print HL    
.hexhlld a,h call hexprt  ld a,l jp   hexprt    *** SUBRPrint HL as (up to) 5-di
git decimal    .dechlld c,0  ld de,10000 call prhlr  ld de,1000 call prhlr  ld d
e,100 call prhlr  ld de,10 call prhlr  ld c,1 ld de,1  .prhlrxor a  .prhllpscf c
cf sbc hl,de jr c,prhlo  inc a jr prhllp  .prhloadd hl,de or a jr nz,prhly cp c 
ret z  .prhlyld c,1 add &30 call &BB5A ret    *** SUBRPrifor input   pop bc   pu
sh hl pop ix  pop hl  jp nc,error    cp &16 jr nz,lntasc  ld (ix+65),255 ld (ix+
66),0modify if ASCII file    .lntasccall &BC83  jp &BC7A    *** RSXINFO,a$    .i
nfoicp 1 jp nz,parerr    ld l,(ix+0) ld h,(ix+1)  ld b,(hl) inc hl  ld e,(hl) in
c hl  ld d,(hl) ex de,hl  ld de,buffer2k buffer  .rheadcall &BC77open file for i
nput  jp nc,error    ld (dloc),de  ld (dlen),bc  ld (dtyp),a  push de   ld de,&1
A add hl,de   ld e,(hl) inc hl   ld d    Type code    .typeccall &BC7D  ld l,(ix
) ld h,(ix+1)  ld b,(hl) inc hl  ld e,(hl) inc hl  ld d,(hl) ex de,hl  ld de,buf
fer  call &BC77  jr nc,typeex    .typelcall &BC80 jr nc,typeex  cp 138 call z ,s
ub128  cp 144 call z ,repspc  cp 32  jr   nc,typchr  cp 9   jr   z ,typtab  cp 1
0  jr   z ,typchrdon't print control characters  cp 13  jr   z ,typchrexcept CR/
LF without setting  push af ld a,1 call &BB5A pop af"print graphic" mode first! 
 .typchrcall &BB5A scf  ,(hl)   ld (fexec),deget execution address from header  
pop hl  add hl,bc  ld (dend),hl  call &BC7Aclose file    .dispinld hl,start  cal
l string ld hl,(dloc) call hexhl  ld hl,length call string ld hl,(dlen) call hex
hl  ld hl,fexc   call string ld hl,(fexec) call hexhl  ld hl,datend call string 
ld hl,(dend) call hexhl  ld hl,fltype call string ld a ,(dtyp) call hexprt  ld a
," " call &BB5A  ld a,"(" call &BB5A  ld a,(dtyp) bit 0,a  ld hl,protxt call nz,
string  .prnchrpush af call &BD2B pop af jr nc,prnchr  .typdone call &BB09 jr nc
,typelif key not pressed, loop  call &BB06 cp &FC jr nz,typelquit if ESC    .typ
eexcall &BC7D ret    .sub128and 127 retProtext soft line feeds  .repspcld a," " 
retProtext soft spaces  .typtabld a," " call &BB5ATAB handling (every 8 spaces) 
 call &BB78 ld a,h dec a and 7  jr nz,typtab jr typdone    *** RSXCAT,drive    .
catlior a jr z,dorcat  .cthingld hl,(&BE7D) ld a,(hl)  push af pushld a,(dtyp) a
nd 14  ld hl,shbasc cp 0 jp z,shstng  ld hl,shbinr cp 2 jp z,shstng  ld hl,shasc
i cp 6 jp z,shstng  ld hl,shunkn  .shstngjp string    .dlocequ &AF00  .dlenequ &
AF02  .dtypequ &AF04  .dendequ &AF06  .fexecequ &AF08    .startdb 10,13  .start1
db       "Start address   &",0  .lengthdb 10,13,"Length          &",0  .fexcdb 1
0,13,"Execute address &",0  .datenddb 10,13,"End address     &",0  .fltypedb 10,
13,"File type       &",0  .protxtdb "protected ",0  .shbascdb "B hl   ld a,(ix) 
ld (hl),a   call dorcat  pop hl pop af  ld (hl),a ret    .dorcatld de,buffer jp 
&BC9B  ret    *** RSXDEPROTECT,a$    .dproicp 1 jp nz,parerrabort if not present
    ld l,(ix+0) ld h,(ix+1)  ld b,(hl) inc hlstring address  ld e,(hl) inc hl  l
d d,(hl) ex de,hl  ld de,buffer call &BC77open file for input  jp nc,error  cp 2
 jp nc,errorif not a protected BASIC file  push de   ld ix,&AE66BASIC 1.1 variab
le - length   ld a,(6) cp 128 jr nz,not4644ASIC)",10,13,0  .shbinrdb "binary)",1
0,13,0  .shascidb "ASCII)",10,13,0  .shunkndb "unknown)",10,13,0    *** SUBRStri
ng print    .stringld a,(hl) or a ret z  call &BB5A  inc hl jr string    *** SUB
RConvert to upper case    .ucasecp  &61 ret c  cp  &7B ret nc  add &E0 ret    **
* SUBRHex print without corruption    .hexncpush bc call hexprt pop bc ret    **
* SUBR1-byte hex print A    .hexprtld b,2 ld c,a  rra rra rra rra  .hexmskand &F
  cp 10 jr c,hexbye  add 7A64   ld ix,&AE83BASIC 1.0 variable - length  .not464 
ex de,hl add hl,bc   ld (ix+0),l ld (ix+1),h   ld (ix+2),l ld (ix+3),h   ld (ix+
4),l ld (ix+5),h   ld (ix+6),l ld (ix+7),h  pop hl  call &BC83 call &BC7Aget fil
e and close  ret    *** RSXLOAD,a$,address    .loadicp 2 jp nz,parerr    ld l,(i
x) ld h,(ix+1)  push hl   ld l,(ix+2) ld h,(ix+3)   ld b,(hl) inc hl   ld e,(hl)
 inc hl   ld d,(hl) ex de,hl   ld de,buffer2k buffer   push bc    call &BC77open
 file   Ndb "Unknown command",0  .keytxtdb "Could not set key",0    *** SUBRLD A
,(HL) - extra banks    .ldahlpush bc push hl   ld b,a ld a,h and &C0  .bnkp1 rlc
a rlca add &C4   ld c,a   ld a,h and &3F or &40 ld h,a   ld a,b ld b,&7F   out (
c),c ld a,(hl)   ld c,&C0 out (c),c  pop hl pop bc  ret    *** SUBRLD (HL),A - e
xtra banks    .ldhlapush bc push hl   ld b,a ld a,h and &C0  .bnkp2 rlca rlca ad
d &C4   ld c,a   ld a,h and &3F or &40 ld h,a   ld a,b ld b,&7F   out (c),cjp CO
PYAB  jp COPYBA  jp BRUN  jp HELP  jp HEADER  jp BASLOD  jp SLOAD  jp CAT    .na
mtab if rom   str "S-DOS "  endif  str "SFORMAT"  str "SVERIFY"  str "AMSDOS"  s
tr "COPYAB"  str "COPYBA"  str "BRUN"  str "SHELP"  str "SHEADER"  str "SPLOAD" 
 str "SLOAD"  str "CAT"  nop     Initialisation entry    .initenld a,1  push hlp
ush de preserve important system registers  push ixpush iy   call formatSet up S
-DOS format  ld hl,titleaddress of ROM logon title  call stringPri ld (hl),a   l
d c,&C0 out (c),c  pop hl pop bc  ret    *** SUBRDisc drive connected    .fnddsc
ld hl,dscrsx call &BCD4  sbc a ret    .dscrsxstr "DISC"    *** DATAFile buffer  
  .bufferdb 0  Coding production  for Robot PD and Amstrad Ac ld a,(hl)   ld c,&
C0 out (c),c  pop hl pop bc  ret    *** SUBRLD (HL),A - extra banks    .ldhlapus
h bc push hl   ld b,a ld a,h and &C0  .bnkp2 rlca rlca add &C4   ld c,a   ld a,h
 and &3F or &40 ld h,a   ld a,b ld b,&7F   out (c),cnt it     ld de,&AF00  ld hl
,dparam  ld bc,9  push de  ldirCopy to &AF00 (not in a ROM)  pop hl  rst 3Set up
 faster disc speed  dw setup    pop iy pop ixget the preserved registers back ag
ain!  pop de pop hl  scfcarry flag indicates ROM init. was successful  retand re
turn     SFORMAT command Rob    .formatld hl,(&BE7D)  ld de,&1d0  add hl,de  ex 
hl,deDE contains XPB address for drive B  ld hl,xpbHL contains pointer to NEW XP
B for drive B  ld bc,25number of entrnt LF/CR    .crlfld a,10 call &BB5A  ld a,1
3 call &BB5A ret    *** SUBRPrint special character    .pcspecpush af push bc   
ld c,a   ld a,1 call &BB5A   ld a,c call &BB5A   ld a,r bit 7,a jr z,pcsend   ld
 a,c cp 32 jr c,pcsdot   bit 7,a jr nz,pcsdot   call &BD2B jr pcsend  .pcsdot ld
 a,"." call &BD2B  .pcsendpop bc pop af ret    *** SUBRErrors    .parerrld hl,pa
rtxt call string jp crlf  .errorld hl,errtxt call string jp crlf  .escerrld hl,e
sctxt call string jp crlf    *******************************************  * SDOS
 version 1.0 rev 23                 *  * Written in Z80 ASSEMBLER on a CPC664   
 *  * All code content copyright 1992         *  * Rob Scott and Richard Fairhur
st         *  *******************************************    +------------------
------------------+   Date Programmed   Tue/Wed 25/03/92    Revision Number   23
                  Language          Z80 machine code    Version Type      ROM/di
sc image     +-------------.ovrerrld hl,ovrtxt call string jp crlf  .crcerrld hl
,crctxt call string jp crlf  .dscerrld hl,dsctxt call string jp crlf  .chrerrld 
hl,chrtxt call string jp crlf  .unkerrld hl,unktxt call string jp crlf  .keyerrl
d hl,keytxt call string jp crlf    .partxtdb "Illegal parameter count",0  .errtx
tdb "File error",0  .esctxtdb "Escape pressed",0  .ovrtxtdb "Cassette overrun",0
  .crctxtdb "Read error b (CRC error)",0  .dsctxtdb "Disc error",0  .chrtxtdb "C
haracter not editable",0  .unktxt-----------------------+    romequ 0    nolistR
OM should be 1 if a ROM image is to be written  if rom  org &C000  write "sdos-r
om.bin"    db 1Background ROM  db 1Mark number  db 0Version number  db 0Modifica
tion level  else  org &8000  write "sdos-dis.bin"  ld hl,wspace  ld bc,comtab  c
all &bcd1  call initen  ret  .wspaceds 4  endif     Command and name tables    .
comtabdw namtabAddress of name table  if rom   jp INITEN  endif  jp FORMAT  jp V
ERIFY  jp AMSDOS    Nkpush afpreserve track counter  ld a,b  call &bb5aprint the
 character ("+" if ok, "" if error)  inc dtrack  track+1  ld a,dget the track co
unter into the A register  cp 80is it the last track   jp z,endyes, then jump to
 the end routine  ld d,aotherwise place the track number in D register  ld c,&71
and place the starting sector number in C  pop afget the track counter back agai
n  dec atracktrack-1  jp wrzand jump back to the read routine    .endpop afbalan
ce     .trklopld b,10number of sectors per track  .ldlopld (hl),dand place the c
urrent track number in (HL) (buffer)  inc hland the next 3 instructions incremen
t to next track entry  inc hl  inc hl  inc hl  djnz ldlopand repeat for all 10 s
ectors    ld hl,&AF00address of ID header buffer    rst 3far call to disk ROM to
 format the track  dw ftrackword address of the format track routine    jp nc,er
ror  inc dtracktrack+1  push afpreserve AF  ld a,"+"place the FORMAT TRACK pushe
d variables   pop hlget the retry and error count back again  ld a,hget the retr
y count back from H register  ld (&BE78),aand reset back to normal  ld a,lget th
e error messages count back again  ld (&BE66),aand reset back to normal  retand 
return     AMSDOS command    .amsdosld hl,(&BE7D)  ld de,&1d0+24  add hl,deHL co
ntains XPB address +24 for drive B  xor aA  freeze flag (0  auto detect format) 
 ld (hl),aand place in freeze flag position in B XPB  retreturmarker in A  call 
&bb5aand print it at current cursor position  pop afget AF back again  ld a,dget
 the track count back into A again  cp 80is it the last track to be formatted  j
p nz,trklopand repeat round loop if it is  retreturn from routine     SVERIFY co
mmand Rob    .verify ld a,(&be78)get the current error message flag from RAM  ld
 h,aand place in H  ld a,(&be66)get the current RETRY count from RAM  ld l,aand 
place in L  push hlpreserve RETRY and ERROR datan to BASIC     COPYAB/COPYBA com
mands me    .copyab or a  call z,nonamIf no parameter, get one  cp 1  ret nzRetu
rn if still not one parameter!  call ifacePut string in right place  ld (hl),"B"
B is destination drive  jr copy    .copyba or a  call z,nonam  cp 1  ret nz  cal
l iface  ld (hl),"A"    .copyinc hl  ld (hl),""colon for drive specifier  dec hl
to start of string    call fdbufffind 2k buffer address  ld (&AF20),destore it  
push bc push hl  call &BC8Copen o    ld a,1and set retrys to One  ld (&be66),a  
xor aA0  dec aA&FF (carry true!)  ld (&be78),aand set the error messsages off   
 ld hl,(&be7d)get the drive B select address from RAM  ld de,560sector buffer  o
ffset 560 in RAM  add hl,deand now HL points to sector buffer  ld c,&71starting 
sector number  ld d,0start track to start writing to  ld e,1drive unit - 1B    .
wrzld a,9number of sectors per track (SPT) minus 1  ld b,"+"character to print  
  .writepush afutput file  pop hl pop bc  jp nc,error    rst 4 ld c,a  ld a,131 
sub cconvert destination into source drive  ld (hl),a    push bc  ld de,(&AF20)g
et last buffer address  ld a,d cp &C0if it was in screen memory,  jr z,inscr the
 new one must be too!  ld bc,2048  ex hl,de  add hl,bcelse find end of last buff
er  ex de,hl  call fbuffpand search starting from there  jr stbuff  .inscrld de,
&C800second buffer in screen memory  .stbuffld (&AF22),destore the buffer  pop b
c  call preserve sector count  rst 3FARCALL to disk ROM with following WORD  dw 
readWORD address of routine and ROM select address  jr c,rcontread ok  ld b,""no
, so character to print  ""  .rcontpop afget the sector count back again  cp 0is
 it zero (nine sectors written )  jr z,inctrkyes, then jump to INCrement TRacK r
outine  dec adecrement track count (tracktrack-1)  inc cincrement sector counter
 (sectorsector+1)  jr writeand jump back to sector write routine    .inctries in
 drive B XPB  ldircreate new XPB for drive B  or aand test to see if there are a
ny parameters  ret nzreturn if no parameters (just set up format)    .forld hl,s
ecbufaddress of sector ID header for formatting  ld de,&af00address of nice safe
 place in RAM to place it  ld bc,50number of entries in the header buffer  ldira
nd move the header buffer into RAM    ld hl,&af00address of ID header buffer  ld
 e,1Drive select address (1b)  ld d,0start track to start formatting  Ne found i
n screen  ld (&AF12),destore buffer address    ld a,crestore A  ld hl,(&BE7D)get
 address of current drive store  push af  ld a,(hl)get the current drive  ld (&A
F10),aand store elsewhere  pop af  or a  jr z,docat    ld a,(ix)get parameter  a
nd 1mask so it can only be 0 or 1  ld (hl),a    .docatpush hl  call &BC9Bdo the 
catalogue...  pop hl  ld a,(&AF10)  ld (hl),arestore old drive  ld hl,(&AF12)get
 buffer address  call bkbuffand blank the buffer!points to address of filename  
ld de,&C000Address to open 2k buffer  .lfilecall &BC77open file for input  jp nc
,errorand if an error occurs, then tell user  or aBASIC  jr z,basic  cp 1protect
ed BASIC  jr z,basic  push hlpreserve all registers corrupted by LDIR   push de 
 push bc  ld hl,restHL points to routine to read the file into store  ld de,&af0
0DE points to place to put routine  ld bc,&30number of bytes to move  ldirand re
locate the loader  jp &af00to execute &BC77open the input file  jp nc,error  cp 
22 jr z,nohead    ld b,128  .oheadld a,(hl)  call &BC95write out 128-byte header
  inc hl  djnz ohead    .nohead call &BC80input character...  jr c,okcharread ok
  jp z,eofclose file if error  cp &1A  jr nz,eofend of file if not soft EOF (CHR
$(26))    .okchar call &BC95...output character  jr nohead    .eofcall &BC7Aclos
e input file  call &BC8Fclose output file  ld hl,(&AF20)  call bkbuffblank outpu
t buffer again  ld hl,(&AF22)  the loader  .restpop bcget all the preserved regi
sters back  pop de  pop hl  ex de,hlget start address from header into HL  call 
&bc83and read in the file into store  push hlpreserve execute address  call &bc7
aand close input file  pop hlget the execute address back again  jp (hl)and exec
ute the file    .basicld hl,btxtaddress of BASIC program text  call stringcall s
tring print routine  retreturn to BASIC    .baslodor a  call z,nonam  cp 1  ret 
nz    .getbasld l,(ixcall bkbuffand input buffer  ret    .errorbit 7,a  jr nz,er
cont  ld hl,etext  call string  .ercontcall &BC92abandon output file  call &BC7D
abandon input file  ret    .ifaceld l,(ix) ld h,(ix+1)  ld a,(hl) ld c,a ld b,0 
 inc hl ld e,(hl) inc hl ld d,(hl)  ex de,hl  ld de,&AF26  push bc  ldir  pop bc
  ld b,c  inc b  inc b  ld hl,&AF24  ret     BRUN command Rob    .brunor aset z 
flag according to state of A  call z,nonamif no filename, go and get one!  cp 1i
s +&00)  ld h,(ix+&01)  ld a,(hl)  ld b,a  inc hl  ld e,(hl)  inc hl  ld d,(hl) 
 ex hl,de  ld de,&c000Address to open 2k buffer  .rbasiccall &bc77open file for 
input  jp nc,error  cp 2  jp nc,error  ex de,hl  call &bc83  call &bc7a  ret    
 SLOAD command Rob    .sloador a  call z,nonam  cp 1  ret nz    ld hl,start1  ca
ll string  call hexinp  ret zESC pressed  ld c,0  jr c,nosetc  inc cC is 1 if in
put, 0 if no input  .nosetcpush hl  ld l,(ix+0)  ld h,(ix+1) there a filename no
w  ret nzreturn if not  push ixotherwise preserve parameter block address    ld 
hl,(&be7d)and get the drive select address from RAM  ld (hl),1and select drive o
ne (B)    .patchld a,&c9A contains Z80 op-code for RETurn  ld (&BCCB),astop ROMs
 being initialized (KL ROM WALK/INIT)  ld (&BCCE),a  ld (&BCC8),astop system res
et (KL CHOKE OFF)  ld (&BD37),astop firmware reset  add &20A contains op-code fo
r JP (HL)  ld (&BD16),apatch MC START PROGRAM  ld (&BD13) ld a,(hl)  ld b,a  inc
 hl  ld e,(hl)  inc hl  ld d,(hl)  ex hl,de  ld de,&c000Address to open 2k buffe
r  push bc  call &bc77open file for input  pop bc  pop hl  jp nc,error  ld a,c  
or a  jr nz,indrctdon't bother getting load address if supplied  ex de,hl  .indr
ctcall &bc83  call &bc7a  ld a,10 call &BB5A  ld a,13 call &BB5ACR/LF  ret     C
AT command me    .catcall fdbufffind a 2k buffer  ld c,apreserve A  ld a,d cp &C
0  jp z,errorerror if only can b,apatch MC LOAD PROGRAM    .getsdbpop ixget the 
parameter block address from stack  ld l,(ix+0)and get the lo byte of the string
 descriptor  ld h,(ix+1)and get the hi byte of the string descriptor  ld a,(hl)g
et the length of the string  ld b,aand place it in B register for CASINOPEN  inc
 hlHL points to address of FILENAME in RAM  ld e,(hl)get the lo byte of the FILE
NAME address  inc hlget the hi byte of the FILENAME address  ld d,(hl)and place 
in D register  ex hl,deHL   N,&05  ld (ix+2),&AF  ld hl,ftext"Enter filename"  c
all string  ld hl,&AF05  call inputfInput filename  &AF05  ld a,&A call &BB5A  l
d a,&D call &BB5A  pop hl  ld (ix),bStore string length  dec ix dec ixIX  parame
ter block (&AF00)  ld a,0No parameter passed for below conditions (ESC/RETURN)  
ret zReturn if ESC pressed  ld a,bA is length of filename  or ais it zero  ret z
return if so  ld a,1otherwise - one parameter  retand return!    .tbthexld a,h  
call hecp 13    jr z,exhinpRETURN  cp &7F   jr nz,notdelDEL    ld a,b or a  jr z
,waitchdon't delete if no input yet!    dec hl dec bdecrement char count and loc
ation  ld a,8 call &BB5Abackspace...  ld a,32 call &BB5ASPACE over the character
...  ld a,8 call &BB5Aand backspace again  jr waitch    .notdel cp "f"+1 jr nc,w
aitchget another character if over "f"  cp "a"  jr c,nolowskip this next bit if 
not lower case  res 5,aconvert to upper case  .nolowcp "F"+1 jr nc,waitxprt  ld 
a,l  call hexprt  ret    .hexprt ld b,2  ld c,a  rra  rra  rra  rra    .hexmsk a
nd &f  cp &a  jr nc,hexgrt  add a,&30  call &bb5a  jr hexbye    .hexgrt add a,&3
7  call &bb5a    .hexbye ld a,c  djnz hexmsk  ret    .helpld hl,htxt  call strin
g  ret     Find 2k buffer me    .fdbuffld de,&200find 2k buffer  .fbuffp push bc
 push af  ld bc,0zero count to 0    .bfloopld a,(de)get byte,  inc deand increas
e pointer  or ais the byte 0  jr z,iszeroif so, go to chget another character if
 over "F"  cp "0"   jr c,waitchget another character if below "0"  cp "A"   jr n
c,okchok if "A" or above  cp "9"+1 jr nc,waitchget another character if above "9
"  .okchld (hl),a  inc hl  inc b  call &BB5A  bit 2,b  jr z,waitch    .exhinp ca
ll &BB84cursor off  ld a,b  or a  jr z,nohinpnothing input!  ld de,0  ld hl,&AF4
0    .hcloop ex hl,de  add hl,hl  add hl,hl  add hl,hl  add hl,hl  ex hl,de  ld 
a,(hl)  cp "A"  jr nc,letter  sub 48  jr add2increase zero count  ld bc,0else re
set it  .rpointld a,d  cp &A0reached &A000 yet  jr nz,bfloopif not, keep trying.
..!  ld de,&C000run out of memory, so try screen memory!  pop af pop bc  ret    
.iszeroinc bcincrease count of zeros  bit 2,breached 2048 yet  jr z,rpointif not
, go back to check next byte  or areset carry  ex de,hl  sbc hl,bcrestore DE to 
start of zeros  ex de,hl  pop af pop bc  ret     Blank 2k buffer me    .bkbuff l
d a,h  and &C0  cp &C0  ret     SHEADER command Rob    .header or a  call z,nona
m  cp 1  ret nz    .getnamld l,(ix+&00)  ld h,(ix+&01)  ld a,(hl)  ld b,a  inc h
l  ld e,(hl)  inc hl  ld d,(hl)  ex hl,de  ld de,&c000Address to open 2k buffer 
 .rheadcall &bc77open file for input  jp nc,error    ld (dloc),de  ld (dlen),bc 
 ld (dtyp),a  push de  ld de,&1a  add hl,de  ld e,(hl)  inc hl  ld d,(hl)  ld (f
exec),de  pop hl  add hl,bc  dec hl  ld (dend),hl  call &bc7a    .dispin ld hl,s
tart is it in screen memory  jr z,clscrif so, go to clear screen  ld (hl),0  ld 
d,h ld e,l  inc de  ld bc,2047  ldirelse blank out 2k buffer  ret  .clscrcall &B
C11  call &BC0Eclear screen  ret     Print string    .string ld a,(hl)  or a  re
t z  call &bb5a  inc hl  jr string     Input routine (16 characters) me    .inpu
tf push hl call &BB81  ld b,0  .ginkey call &BB18  cp &FC jr z,einpf  cp 13 jr z
,einpf  cp 32 jr c,ginkey  cp 127 jr z,delete jr nc,ginkey  bit 4,b  call string
  ld hl,(dloc)  call tbthex  ld hl,length  call string  ld hl,(dlen)  call tbthe
x  ld hl,fexc  call string  ld hl,(fexec)  call tbthex  ld hl,datend  call strin
g  ld hl,(dend)  call tbthex  ld hl,fltype  call string  ld a,(dtyp)  call hexpr
t  ld a,&0acall &bb5a  ld a,&0dcall &bb5a  ret     Filename input routine me    
.nonampush hl  ld ix,&AF00  ld (ix),&02  ld (ix+1),&AFParameter block  &AF00  in
c ix inc ixString descriptor block  &AF02  ld (ix+1)jr nz,ginkey  call &BB5A ld 
(hl),a inc hl  inc b jr ginkey  .delete ld a,b or a jr z,ginkey  dec b dec hl ld
 (hl),0  ld a,8 call &BB5A ld a,32 call &BB5A  ld a,8 call &BB5A jr ginkey  .ein
pfld (hl),0 pop hl push af call &BB84 pop af cp &FC ret     Hex input routine (4
-byte) me    .hexinp ld hl,&AF40input buffer  ld b,0characters typed in  call &B
B81cursor on    .waitch call &BB06wait for character  cp &FC   jp z,&BB84ESCAPE 
set zero, indicates ESC pressed    ND  db"SHEADER,",34,"filename.ext",34,"  disp
lays extended information about file",&0a,&0d  db"SLOAD,",34,"filename.ext",34,"
    load a file into anywhere in memory",&0A,&0D  db"SPLOAD,",34,"filename.ext",
34,"   load a protected BASIC file",&0a,&0d  db"SVERIFY ",32,"              ",32
,"  verify the S-DOS format disc in drive B",&0a,&0d  db &0a,&0d,&00    .startdb
 &0a,&0d  .start1db"Start address   &",&00    .lengthdb &0a,&0d  db"Length      
    &",&00    .fexcdb &0a,&0d  db"Execute&74,2  db 0,0,&79,2  db 0,0,&75,2  db 0
,0,&7a,2     XPB for S-DOS format    .xpbdw &28records per track  db &04block sh
ift  db &0fblock mask  db &00extent mask  dw &c7number of blocks -1  dw &7fNumbe
r of directory entries -1  dw &c0number of directory blocks, bit significant (&8
01 &c02)  dw &10bit significant checksum vector (dir entries/4+1)  dw &00number 
of reserved tracks  db &71first sector number  db &0anumber of sectors per track
 (10)  db &09ga address &",&00    .datenddb &0a,&0d  db"End address     &",&00  
  .fltype db &0a,&0d  db"File type       &",&00      .etextdb "Disc error!",&A,&
D,&A,0    .ftextdb "Enter filename  ",0    .dlocequ &af00  .dlenequ &af02  .dtyp
equ &af04  .dendequ &af06  .fexecequ &af08*****************  * SDOS version 1.0 
rev 23                 *  * Written in Z80 ASSEMBLER on  &0a,&0d  .start1db"Star
t address   &",&00    .lengthdb &0a,&0d  db"Length          &",&00    .fexcdb &0
a,&0d  db"Executep length (read/write)  db &10gap length (format)  db &e5filler 
byte for formatting  db &02log2 (sector size) -7  db &04sector size/128  db &00r
eserved current track  db &00reserved aligned  db &FFdon't auto-select format   
  Disc parameters (uPD765A SPECIFY command)    .dparamdw 50motor on timeout  dw 
250motor off timeout  db 175write current off  db 15head settle time  db 10(fast
er) step rate time  db 1head unload delay  db 3head load delay,  STS Meeting Dem
o / BTL 3 intro  starring Tamsin the Wonder Cat    org &8000  write "disc.bin"  
nolist    Demo short, sharp, chaotic, "crashes" at end of scrolltext.  Nine Acre
 Dust Staten Island Hey Dude    cat1requ &C000  cat2requ &C12C  cat3requ &C258  
cat1lequ &C384  cat2lequ &C4B0  cat3lequ &C5DC  catstequ &C708  musicequ &D000  
  toplnequ &40009*96+&80+2    fontequ &9B00HIMEM-&1000 then page-aligned    *** 
INITInitialisation    ld a,1 call &BC0E    ld hl,&B0FF non-DMA     Text and misc
ellaneous data    .titledb " S-DOS ",164,"1992 STS Software.",&0A,&0D,&0A,0    .
btxtdb"System patched, please run BASIC file.",&0a,&0d,&00    .htxtdb &04,&02  d
b"S-DOS version 1.0 ",164,"1992 Richard Fairhurst and Rob Scott, STS Software",&
0a,&0d,&0a,&0d  db"Commands available",&0a,&0d,&0a,&0d  db"AMSDOS ",32,"        
     ",32,"    reset the B drive to normal AMSDOS formats",&0a,&0d    db"BRUN,",
34,"filename.ext",34,"     RUN a file from a big format drive B",&0 ld c,7  ld d
e,&0040 call &BCCE    ld hl,sname ld b,12  ld de,&C000 call &BC77  ld hl,&C000 c
all &BC83  call &BC7A    ld hl,&C140 ld de,&3E8 call cstsr  ld hl,&C190 ld de,&4
48 call cstsr  ld hl,&C1E0 ld de,&4A8 call cstsr  ld hl,&C230 ld de,&508 call cs
tsr  ld hl,&C280 ld de,&568 call cstsr  ld hl,&C2D0 ld de,&5C8 call cstsr  ld hl
,&C320 ld de,&628 call cstsr  ld hl,&C370 ld de,&688 call cstsr  ld hl,&C3C0 ld 
de,&6E8 call cstsr  ld hl,&C410 ld de,&748 call csta,&0d  db"CAT,0/1",32,"      
        ",32,"   catalogue drive A or drive B",&0A,&0D  db"COPYAB,",34,"filename
.ext",34,"   copy a file from drive A to drive B",&0a,&0d  db"COPYBA,",34,"filen
ame.ext",34,"   copy a file from drive B to drive A",&0a,&0d  db"SFORMAT ",32," 
             ",32,"  format the disc in drive B to S-DOS format",&0a,&0d  db"   
                         (396k, 128 directory entries)",&0a,&0d  db"SFORMAT,1",3
2,"             ",32,"  set up S-DOS format for drive B",&0A,&0de  .letter sub 5
5  .add2de push bc  ld c,a ld b,0  ex hl,de add hl,bc ex hl,de  pop bc  inc hl  
dec b jr nz,hcloop    ex hl,de  ld a,1 or areset zero, reset carry, indicates nu
mber in HL  ret    .nohinpld a,1 or a scfreset zero, set carry, indicates no inp
ut  ret     Disc ROM jumps    .readdw &C03C,7  ds 2    .ftrackdw &C042,7    .set
updw &C036,7     Format vector    .secbuf db 0,0,&71,2  db 0,0,&76,2  db 0,0,&72
,2  db 0,0,&77,2  db 0,0,&73,2  db 0,0,&78,2  db 0,0,  Nld bc,font add hl,bc ret
    --- subrPrint 8 rows/1 column on screen    .rowld bc,&0308  ldi inc cdec e l
d a,ladd bld l,a ld a,dadd cld d,a  ldi inc cdec e ld a,ladd bld l,a ld a,dadd c
ld d,a  ldi inc cdec e ld a,ladd bld l,a ld a,dadd cld d,a  ldi inc cdec e ld a,
ladd bld l,a ld a,dadd cld d,a  ldi inc cdec e ld a,ladd bld l,a ld a,dadd cld d
,a  ldi inc cdec e ld a,ladd bld l,a ld a,dadd cld d,a  ldi inc cdec e ld a,ladd
 bld l,a ld a,dadd l,a ld h,0 add hl,hl add hl,hl push hl   add hl,hl pop de add
 hl,de     ld a,c and 7 add a add a add a8*(row MOD 8) - subrows  ld d,a ld e,0 
add hl,de   ret    *** ROUTUpdate position    .updateld de,(anic) ld a,(catpic) 
 .updlpld hl,256 or a sbc hl,de jr z,updrs  ld hl,207 or a sbc hl,de jr c,liftu 
 ld hl,127 or a sbc hl,de jr c,walkl  ld hl,79  or a sbc hl,de jr c,liftd    .wa
lkrld hl,anixinc (hl) inc deld (anic),de inc aand 3     ld (casr    ld hl,fname 
ld b,12 call &BC77 ld hl,&C000 call &BC83 call &BC7A  ld hl,lname ld b,12 call &
BC77 ld hl,font  call &BC83 call &BC7A  ld hl,mname ld b,12 call &BC77 ld hl,mus
ic call &BC83 call &BC7A    ld bc,&0723 call crtc  ld bc,&0385 call crtc  ld bc,
&0232 call crtc  ld bc,&0621 call crtc  ld bc,&0130 call crtc  ld bc,&0C0C call 
crtc  ld bc,&0D40 call crtc    ld hl,10*96+&80 ld d,h ld e,l inc de ld (hl),255 
ld bc,95 ldir  ld hl,18*96+&80 ld d,h ld e,l inctpic),a ld a,4 ret  .walklld hl,
anixdec (hl) inc deld (anic),de inc aand 3or 4ld (catpic),a ld a,4 ret  .liftdld
 hl,aniyinc (hl) inc deld (anic),de ld a,8          ld (catpic),a ld a,1 ret  .l
iftuld hl,aniydec (hl) inc deld (anic),de ld a,8          ld (catpic),a ld a,1 r
et  .updrs     ld de,0ld (anic),de jr updlp    *** SUBRSprite-display routine  A
  height, HL  source, DE  destination  puts one blank byte either side    .sprit
eex de,hl ld (hl),0 de ld (hl),255 ld bc,95 ldir    &4420 - start of first row- 
&447F  &4480 - start of second row- &44DF  &44E0 - start of free memory    di ld
 hl,(&38) ld (r38),hl      ld hl,&C9FB ld (&38),hl ei    ld e,1 call music    .t
estlpld b,&F5  in a,(c) rra jr nc,testlp  ld bc,&7F00 ld a,&54 out (c),c out (c)
,a    call scroll  .countrld a,1 dec a jr nz,noanim  call disp  call update  .no
animld (countr+1),a  call mwcalc  call music+3    ld bc,&7F00 ld a,&4C out (c),c
 out (c), inc hl ex de,hl  ldildildildildildildildildildildildi  ex de,hl ld (hl
),0  ld bc,&7F3 add hl,bc bit 7,h jr z,sprnoc  ld bc,&C060 add hl,bc  .sprnocex 
de,hl dec a jr nz,sprite  ret    *** VARIAnimation variables    .anixdb 0Positio
n (0-79)  .aniydb 0Row (0, 1-63, 64)  .anicdw 0Counter (0-287)  .catpicdb 0Curre
nt frame of picture    ------------------------------ scroll -------------------
--------------    *** ROUTScrolling message handler    .a  .norsttjp testlp    .
r38dw 0    call &BD19  call &BB09 jr nc,testlp    call music+6  ld bc,&071E call
 crtc  ld bc,&0619 call crtc  ld bc,&022E call crtc  ld bc,&0128 call crtc  ld b
c,&0C30 call crtc  ld bc,&0D00 call crtc    ld a,2 jp &BC0E    -----------------
--------------- animation ----------------------------    *** ROUTDisplay sprite
 in correct position    .displd a,(aniy) call scraddGet screen address  ld a,(an
ix) ld e,a ld d,0 add hl,deAdd x position  ld dscrollld a,(textpt) or a jr z,new
  ld hl,(fontad) jr scrolc    .newld hl,(textad)  ld a,(hl) or a jr nz,newcok  l
d hl,text ld a,(hl)  .newcokinc hl ld (textad),hl  call charad    .scrolcpush hl
   ld de,&447F call row   ld de,&44DF call row  pop hl inc hl ld (fontad),hl  ca
ll dscrol  ld a,(textpt) inc a and 3  ld (textpt),a ret    --- subrCalculate cha
racter address (A - HL)    .charadsub 32 ld l,a ld h,0  add hl,hl add hl,hl add 
hl,hl  add hl,hl add hl,hl add hl,hl  e,topln  add hl,deAdd base address    push
 hlGet sprite address   ld hl,(catpic) ld h,0    add hl,hl add hl,hl    ld de,pi
ctbl add hl,de    ld e,(hl) inc hl    ld d,(hl) inc hl    ld a,(hl)   pop hl ex 
de,hl  jp sprite    .pictbldw cat1r,25,cat2r,25,cat3r,25,cat2r,25  dw cat1l,25,c
at2l,25,cat3l,25,cat2l,25  dw catst,21    --- subrConvert pixel line number A to
 screen address HL    .scraddld c,a and &F812*(row8) for charrows  ld   N    ***
 SUBRCopy from &C000 screen (HL) to overscan screen (DE)    .cstsrld a,8  .cstsl
ld bc,80 ldir  ld bc,&7B0 add hl,bc ex de,hl  ld bc,&7B0 add hl,bc ex de,hl  dec
 a jr nz,cstsl ret    *** SUBRCRTC register set    .crtcld a,b  ld b,&BC out (c)
,a  ld b,&BD out (c),c  ret    *** VARIScrolling message    .textaddw text  .fon
taddw 0  .textptdb 0    *** DATAMiscellaneous    .fnamedb "CATS    .BIN"  .sname
db "STS     .SCR"  .lnamedb "NEWFONT .BIN"  .mnamedb "OBLADI  .BI     ld hl,(mtp
os) ld a,(hl)Yes, so get new character   or a jr nz,mwnwok    ld hl,mtext   ld a
,(hl)     .mwnwokex de,hl call charad ld (lspr),hl ex de,hl inc hl ld a,(hl)  ex
 de,hl call charad ld (rspr),hl ex de,hl inc hl ld (mtpos),hl    ld a,&FF ld (bo
uncx),aReset x position  ld hl,(snpos) inc hlStart new path  ld a,(hl) or a jr n
z,snexit       ld hl,sines jr    snexit     .snexiscall stage2 ld hl,(snpos)Remo
ve sprites if not last  .snexiN"    ----------------------------- message writer
 --------------------------    *** DATASine tables    db 0  .sinesdb 48,40,32,25
,19,13,8,4,2,1,1,2,4,8,13,19,25,32,40,48,40,32,25,19,13,8,4,2,1,1,2,4,8,13,19,25
,32,40,48,40,32,25,19,13,8,4,2,1,1,2,4,8,13,19,25,32,40,48,40,32,25,19,13,8,4,2,
1,1,2,4,8,13,19,25,32,40,48,0  db 48,39,31,24,17,11,7,3,1,1,1,3,7,11,17,24,31,39
,48,39,31,24,17,11,7,3,1,1,1,3,7,11,17,24,31,39,48,39,31,24,17,11,7,3,1,1,1,3,7,
11,17,24,31,39,48,39,31,24,17,11,7,3,1,1,1,3,7,11,17,2tld a,(hl) inc hl ld (snpo
s),hlStore position in path and...    *** ROUTMessage writer stage 1 - draw spri
tes    .stage1call scraddCalculate base address  ld bc,&80 add hl,bc   push hl..
.for the left-hand sprite   ld a,(bouncx) inc a    ld (bouncx),a ld e,a ld d,0  
  add hl,de ld (leftx),hl   pop hl ld bc,92...and the right-hand one  add hl,bc 
or a   sbc hl,de ld (rightx),hl     ld hl,(leftx ) ld de,sprst1 call saveStore c
urrent screen4,31,39,48,0  db 48,39,31,23,16,10,5,2,1,1,2,5,10,16,23,31,39,48,39
,31,23,16,10,5,2,1,1,2,5,10,16,23,31,39,48,39,31,23,16,10,5,2,1,1,2,5,10,16,23,3
1,39,48,39,31,23,16,10,5,2,1,1,2,5,10,16,23,31,39,48,0  db 48,38,30,21,14,8,4,1,
1,1,4,8,14,21,30,38,48,38,30,21,14,8,4,1,1,1,4,8,14,21,30,38,48,38,30,21,14,8,4,
1,1,1,4,8,14,21,30,38,48,38,30,21,14,8,4,1,1,1,4,8,14,21,30,38,48,0  db 48,38,28
,20,13,7,3,1,1,3,7,13,20,28,38,48,38,28,20,13,7,3,1,1,3,7,13,20,28,38,48,38,28,2
0,13,7,3,1,1,3,7,13,20,28,38,48,38,28,20,1cld d,a  ldi  ld a,ladd bld l,a ret   
 --- subrScroll all lines    .dscrolld de,&4420 call scrolr ld de,&4C20 call scr
olr  ld de,&5420 call scrolr ld de,&5C20 call scrolr  ld de,&6420 call scrolr ld
 de,&6C20 call scrolr  ld de,&7420 call scrolr ld de,&7C20 call scrolr    ld de,
&4480 call scrolr ld de,&4C80 call scrolr  ld de,&5480 call scrolr ld de,&5C80 c
all scrolr  ld de,&6480 call scrolr ld de,&6C80 call scrolr  ld de,&7480 call sc
rolr ld de,&7C80 call scrolr  3,7,3,1,1,3,7,13,20,28,38,48,0  db 48,37,27,18,11,
5,2,1,2,5,11,18,27,37,48,37,27,18,11,5,2,1,2,5,11,18,27,37,48,37,27,18,11,5,2,1,
2,5,11,18,27,37,48,37,27,18,11,5,2,1,2,5,11,18,27,37,48,0  db 48,36,26,16,9,4,1,
1,4,9,16,26,36,48,36,26,16,9,4,1,1,4,9,16,26,36,48,36,26,16,9,4,1,1,4,9,16,26,36
,48,36,26,16,9,4,1,1,4,9,16,26,36,48,0  db 48,35,24,14,7,2,1,2,7,14,24,35,48,35,
24,14,7,2,1,2,7,14,24,35,48,35,24,14,7,2,1,2,7,14,24,35,48,35,24,14,7,2,1,2,7,14
,24,35,48,0  db 0    *** VARIMessage writer variables  ret    .scrolrld h,d ld l
,e inc hl  ldildildildildildildildildildildildildildildildi  ldildildildildildil
dildildildildildildildildildi  ldildildildildildildildildildildildildildildildi 
 ldildildildildildildildildildildildildildildildi  ldildildildildildildildildild
ildildildildildildi  ldildildildildildildildildildildildildildildiret      -----
---------------------- miscellaneous -----------------------------  .sprst1ds 64
Don't wipe background  .sprst2ds 64     .bouncxdb &FFCurrent X position  .leftxd
w 0Screen address of LH sprite  .rightxdw 0Screen address of RH sprite  .lsprdw 
font+&840Content address of LH sprite  .rsprdw font+&880Content address of RH sp
rite  .mtposdw mtextPosition in message text  .snposdw sines-1Position in sine t
able    *** ROUTMessage writer text handler    .mwcalcld hl,(snpos) ld a,(hl)End
 of path  or a jr nz,snexis  NAND "  db "TASTE) LIKE UNWASHED GENITALIA.  THIS D
EMO IS DEDICATED TO TAMSIN THE "  db "WONDROUS CAT.    NOW IT IZ DA CREDITZ IN W
HICH FOR WHO WE ARE YOU WELCOMING "  db "YES PLEASE MATRON.      HIGH-FREQUENCY 
SOUNDS THANX TO TOM DEAN OF SQUEAKY "  db "SYSTEM!    RADIKAL GFXZXZZZX BY GONOR
RHOEA OF SYPHILIS. ALSO GFXZZXZXXZQ "  db "IS SCORING 517 POINTS AT SCRABBLE IF 
YOU GET IT ON A TRIPLE-WOR"  list  db 0    starring Tamsin the Wonder Cat    org
 &8000  write "disc.bin"  nolist    Demo short, avelp ret    *** SUBRDraw sprite
 from HL (data) at DE (screen)    .drawld a,16  .drawlpldildildildi ex de,hl  ld
 bc,&07FC add hl,bc bit 6,h jp z,dnext  ld bc,&C060 add hl,bc  .dnextex de,hl de
c a jp nz,drawlp ret    *** DATAMessage writer text    .mtextdb "....NIITS'MSA.T
.""  IT'S  TAMSIN  "  db "..TTAHCE..RWEODN"" THE WONDER CAT "  db "GENNIGOADG.EN
DI.""ENGAGED IN DOING"  db "!WSOGNNDIRHOTU.S""WONDROUS THINGS!"  db 0    *** DAT
AScrolltext    .textdb "              8-bit printer port for CPC Plus  (c)1997 C
RTC/Systeme D    org &A000Relocate if you have a stupid number of ROMs  write "p
lus8bit.bin"  nolist    ld hl,table call &BD58  ld hl,&BD2B ld de,mcpc ld bc,mcp
co call patch  ld hl,&BD31 ld de,mcsp ld bc,mcspo call patch  ld hl,&BDF1 ld de,
mcwp ld bc,mcwpo jp   patch    *** ROUTMC PRINT CHAR    .mcpccall bit8  .mcpcods
 3    *** ROUTMC SEND PRINTER    .mcspcall bit8  .mcspods 3    *** ROUTMC WAIT P
RINTER indirection                    GREETINXSSSGGGSS WELCOME IN THIS DEMO OF T
O BY WHEN HOW ZE EQVALIZOR. "  db "           THIS IS DA FUCKIN SZENE MOB STS WI
TH DA LATEST WAREZ FROM ZE SZENE. "  db "ALL CODING BY CROWN OF STS. GRAFIX BY K
NUUUUTSCHFLECK OF IFW "  db "(INCOMPETENT FUCKWITS). MUSIXX BY KANGAROO OF ARSEB
ANDIT PRODUCTIONS "  db "GMBH. JOBBING INTO A WALL IN MONACO BY MICHAEL SCHUMACH
ER. FRIDGE "  db "MAGNET. GREETING FROM NIPPLE CLAMP OF STS. HI THERE, WELCOME I
N THIS "  db "DEMO, IN WHICH I AM WELCOMING YOU .mcwpcall bit8  .mcwpods 3    **
* SUBRSend eighth bit to CRTC register 12, bit 3    .bit8push af push bc   ld bc
,&BC0C out (c),c ld c,a   ld b ,&BF   in a,(c)  and 247   bit 7,c jr z,bit80   o
r  8  .bit80 ld bc,&BC0C out (c),c   inc b       out (c),a  pop bc pop af ret   
 *** SUBRGeneral-purpose patch routine  Patches HL to jump to DE, placing origin
al bytes at BC    .patchld a,(hl) ld (bc),a inc bc inc hl  ld a,(hl) ld (bc),a i
nc bc inc hl  ld a,(hl) ld (bc),a  IN. AGAIN. THIS IS NIPPLE CLAMP "  db "SPEAKI
NG, OR RATHER, WRITING HA! HA! IN THIS DEMO IN WHICH YOU ARE "  db "BEING WELCOM
ED. GREETINXS TO THE EUROPEAN MEMBERS OF STS. THESE ARE "  db "THE MEN WHOM I AM
 NOW WELCOMING. BEARDED CLAM - NICE TINBABULATION IN "  db "YOUR CLITORIS DEMO. 
CHEESY HELMET FLAKES - LOOK FORWARD TO SEEING "  db "YOUR LATEST UTILITY, CHEESE
 CLONER. PISSFLAPS - GREAT PERSISTINATION "  db "MATE, KEEP UP THE FRYING PAN.  
 GALLOPING NOB ROT - NICE SALSA IN YOUR "  db "PRETZELS! WEdec hl dec hl    ld (
hl),&C3 inc hl  ld (hl),e   inc hl  ld (hl),d   ret    *** DATAPrinter translati
on table    .tablenop  IT$$$r port for CPC Plus  (c)1997 Systeme D    org &A000 
 write "plus8bit.bin"  nolist    ld hl,table call &BD b       out (c),a  pop bc 
pop af ret    *** SUBRGeneral-purpose patch routine  Patches HL to jump to DE, p
lacing original bytes at BC    .patchld a,(hl) ld (bc),a inc bc inc hl  ld a,(hl
) ld (bc),a inc bc inc hl  ld a,(hl) ld (bc),a  ALSO HAVE VALUABLE INPUT FROM EW
ARWOOWOO WHOSE ONLY "  db "PURPOSE IN HIS VERY SAD, DARK EXISTENCE IS TO COMPLET
E HIS NOVEL "  db "ENTITLED 1001 THINGS TO DO WITH YOUR GERBIL DROPPINGS.       
       "    db "NOW YOU HAVE BEEN OFFICIALLY WELCOMED INTO THIS DEMO, SO YOU WIL
L NOW "  db "BE UNOFFICIALLY WELCOMED INTO THIS DEMO, SO HERE GOES       WELCOME
 IN "  db "OUR WONDERFUL WORLD OF DEMO. SO WELCOME AGAIN, CATERING IS BY EWARWOO
WOO "  db "CATERING CORPORATION AND ONLY CONSISTS OF CRISPS WHICH SMELL ( conten
ts  ld hl,(rightx) ld de,sprst2 call save   ld de,(leftx ) ld hl,(lspr) call dra
wDraw new sprite  ld de,(rightx) ld hl,(rspr) call draw   ret    *** ROUTMessage
 writer stage 2 - remove sprites    .stage2ld de,(rightx) ld hl,sprst2 call draw
  ld de,(leftx ) ld hl,sprst1 call draw  ret    *** SUBRStore sprite from HL (sc
reen) in DE (data)    .saveld a,16  .savelpldildildildi  ld bc,&07FC add hl,bc b
it 6,h jp z,snext  ld bc,&C060 add hl,bc  .snextdec a jp nz,s  N17,217,207,229,3
8,0,230,54,54,51,224,3  db 229,4,0,126,229,6,24,229,68,0,255,255,229,19,0,229,12
,255,192,31  db 127,229,10,255,127,127,127,31,192,255,148,170,182,73,148,66,229 
 db 4,255,229,8,0,128,128,177,177,155,142,132,229,38,0,96,96,96,224  db 96,128,2
29,6,0,217,227,195,195,193,229,68,0,255,255,229,19,0,229  db 12,255,127,31,199,1
95,193,225,229,6,224,225,225,227,199,31,127  db 255,170,165,42,5,74,165,229,4,25
5,229,10,0,158,131,31,51,31,229  db 36,0,15,12,12,15,15,13,12,229,7,0,231,54,246
,6,230,22p  ret    *** SUBRPlace highlight bar at HL    .hlightld c,12  .hlloopp
ush hl ld b,33  .hllopi ld a,(hl) ld d,a rlc d       or d xor 255   ld (hl),a in
c hl   djnz hllopi  pop hl  call &BC26  dec c jr nz,hlloop  ret    *** SUBRRemov
e highlight bar from HL    .remvhlld c,12  .rmlooppush hl ld b,33  .rmlopi ld a,
(hl) xor 255 and 85   ld (hl),a inc hl   djnz rmlopi  pop hl  call &BC26  dec c 
jr nz,rmloop  ret      *** SUBRDisplay title screen    .screendb 205,59,0,59,59,
225,17,62,0,25,17,0,192,235,1,25,0,24,29,5,248,62  db 229,4,213,119,17,0,8,25,48
,13,17,80,192,25,13,32,6,14,25,17,49  db 248,25,16,234,209,26,19,254,229,32,225,
26,19,71,254,4,56,214,26  db 19,24,215,255,229,198,192,255,255,229,198,0,255,255
,229,198,0,255  db 255,229,198,0,255,255,229,198,0,255,255,229,198,0,255,255,229
,198  db 0,255,255,229,198,0,255,255,229,198,0,255,255,229,198,0,255,255  db 229
,198,0,255,255,229,198,0,255,255,229,198,0,255,255,229,198,0  db 255,255,229,198
,0,255,255,229,198,0,255  PowerSpell  (c) 1994 Richard Fairhurst    org &7800  w
rite "spell.bin"  nolist    inbuffequ &1000  otbuffequ &1800    *** INITInitiali
sation    call load  ld a,2 call &BC0ETitle screen  ld bc,&0D0D         call &BC
38   ld bc,&1A1A xor a  call &BC32   ld bc,&0000 ld a,1 call &BC32   ld bc,1 cal
l &BBB7 ld de,&020C ld hl,&4D13 call &BB66 ld bc,1 call &BBB7  ld bc,2 call &BBB
7 ld de,&0215 ld hl,&4D17 call &BB66 ld bc,2 call &BBB7  .outercall screen,255,2
29,198,0,255,255,229  db 198,0,255,255,229,198,0,255,255,229,123,0,229,7,3,229,6
8,0,255  db 255,229,123,0,224,48,51,230,198,102,51,229,68,0,255,255,229,123  db 
0,12,12,207,108,108,108,207,229,68,0,255,255,229,125,0,143,217  db 217,217,143,2
29,68,0,255,255,229,123,0,24,24,60,152,152,152,12  db 229,68,0,255,255,229,123,0
,229,7,1,229,68,0,255,255,229,123,0,243  db 155,155,243,131,131,131,229,68,0,255
,255,229,19,0,229,41,63,229  db 63,0,224,229,4,48,51,227,6,229,67,0,255,255,229,
19,0,229,4,255  db   call &BB06     *** SECTMain menu    .maincall &BC7D call &B
C92Abandon any files  call clearClear menu area  call spritePrint menu  call men
uGet response    or a jp z,outer  cp 1 jp z,spell  cp 2 jp z,uedit  cp 3 jp z,ul
oad  cp 4 jp z,usave  cp 5 jp z,help  ret      *** ROUTMenu handler    .menuld h
l,&E3D7 ld e,1  .menulpush hl   call hlight  pop hl  .mkeypcall &BB18  cp 224 jr
 z,select  cp 13  jr z,select  cp 252 jr z,escape  cp 24 192,224,229,22,240,224,
192,255,229,6,192,229,4,255,229,138,0,255  db 255,229,19,0,229,4,255,0,0,229,11,
63,0,0,229,9,63,31,15,255,229  db 6,0,229,4,255,229,63,0,62,99,3,14,24,48,127,22
9,68,0,255,255,229  db 19,0,229,4,255,3,0,128,224,229,7,240,224,128,0,7,229,12,2
55,0,8  db 0,0,2,0,229,4,255,229,8,0,7,12,12,15,12,12,12,229,36,0,229,7,3  db 22
9,80,0,255,255,229,19,0,229,6,255,127,127,229,6,63,60,120,112  db 240,229,6,224,
240,240,248,252,255,255,255,8,1,68,1,18,0,229,4,255  db 229,8,0,129,193,207,217,
21 jr z,cdown  cp 32  jr z,cdown  cp 240 jr z,cup  jr mkeyp    .cdownld a,e cp 5
 jr z,mkeyp  push hl   call remvhl  pop hl  ld bc,160 add hl,bc  inc e jr menul 
   .cupld a,e cp 1 jr z,mkeyp  push hl   call remvhl  pop hl  ld bc,&FF60 add hl
,bc  dec e jr menul    .escapeld e,0  .selectld a,e ret    *** SUBRPrint menu sp
rite    .spriteld de,&F3D7 ld b,71  ld hl,menusp  .splooppush bc push de   ld bc
,33 ldir  pop de pop bc  ex de,hl   call &BC26  ex de,hl  djnz sploo  N,255,229,
19,0,229,13,255,252  db 241,227,195,195,128,229,6,131,193,192,240,248,255,255,22
3,171,93  db 111,183,218,229,4,255,229,8,0,3,6,3,1,0,6,3,229,36,0,6,6,62,102  db
 102,102,62,229,7,0,241,27,251,155,249,229,46,0,243,6,227,48,231  db 229,17,0,25
5,255,229,19,0,229,12,255,3,240,252,254,254,254,0,229  db 8,255,0,0,3,255,219,12
7,247,191,251,238,229,4,255,229,8,0,192,96  db 15,140,204,111,204,12,229,47,0,48
,48,240,48,48,51,243,6,229,45  db 0,224,0,192,96,192,229,17,0,255,255,229,19,0,2
29,13,255,120,62248,204,205,249,241,217,204  db 229,68,0,255,255,229,19,0,229,12
,255,248,231,143,31,31,31,0,229  db 6,31,15,7,128,192,248,229,11,255,229,8,0,128
,128,153,179,227,179  db 153,229,36,0,31,177,177,159,129,3,30,229,5,0,1,1,155,15
3,153,153  db 248,229,68,0,255,255,229,19,0,229,12,255,31,131,225,240,240,240  d
b 0,229,6,255,254,248,1,7,31,229,11,255,229,10,0,230,55,246,6,230  db 229,36,0,7
,143,155,179,191,3,3,229,5,0,156,140,204,140,140,141  db 204,229,68,0,255,255,22
9,19,0,229,4,255,252,192,229,10,240,112    db 30,14,14,14,229,4,254,238,238,206,
30,62,252,248,255,247,125,239  db 118,223,237,229,4,255,229,10,0,143,217,223,152
,15,229,36,0,248  db 192,193,240,193,195,193,229,58,0,7,0,7,12,7,229,17,0,255,25
5,229  db 19,0,229,12,255,14,8,3,7,229,12,15,7,3,255,126,239,189,239,190  db 247
,229,4,255,229,8,0,59,25,25,153,153,25,25,229,36,0,6,0,230,54  db 246,54,246,229
,5,0,60,229,5,102,60,229,46,0,159,229,4,217,229,17  db 0,255,255,229,19,0,229,5,
255,254,252,252,229,4,248,24,8,140,252  db 254,229,4,255,251,249,db 112,112,229,
4,240,112,112,112,240,240,224,192,229,11,255,229,10  db 0,192,229,44,0,128,229,9
,0,243,27,251,155,251,229,68,0,255,255  db 229,19,0,229,4,255,127,112,229,22,124
,56,16,229,11,255,229,65,0  db 227,54,54,54,51,229,68,0,255,255,229,19,0,229,4,2
55,229,24,31,15  db 7,229,11,255,229,63,0,96,96,224,96,96,96,224,229,68,0,255,25
5,229  db 19,0,229,41,248,229,63,0,229,6,12,15,229,68,0,255,255,229,123,0  db 62
,48,48,60,48,48,190,229,68,0,255,255,229,123,0,111,236,111,110  db 96,108,103,22
9,68,0,25249,229,4,248,249,251,255,190,239,189,247  db 255,223,229,4,255,229,8,0
,176,128,183,229,4,182,229,36,0,3,3,219  db 227,195,195,195,229,5,0,1,1,121,13,1
25,205,125,229,46,0,51,179  db 179,159,131,28,229,16,0,255,255,229,19,0,229,4,25
5,128,0,7,31,229  db 4,63,31,7,0,0,0,128,248,229,6,255,127,63,135,192,248,255,25
1,223  db 254,127,247,191,229,4,255,229,10,0,199,108,108,103,96,7,229,37  db 0,2
30,54,54,54,51,229,5,0,131,131,155,179,227,179,155,229,68,0  db 255,255,229,19,0
,229,4,255,7,0,248,229,7,255,127,79,68,0,255  db 255,229,19,0,229,12,255,128,192
,224,224,240,240,248,248,252,252  db 254,254,229,7,255,170,85,170,85,170,85,229,
4,255,229,10,0,124,229  db 4,102,229,36,0,152,192,217,155,27,155,217,229,5,0,6,6
,207,102,102  db 102,99,229,68,0,255,255,229,19,0,229,12,255,112,248,252,252,126
  db 126,62,62,28,28,9,9,3,3,135,135,207,207,255,170,85,170,85,170,85  db 229,4,
255,229,10,0,120,205,193,205,120,229,36,0,6,6,231,54,6,54  db 230,229,56,0,62,51
,51,62,48,48,48,229,17,0,255,255,229,19,0,229  db 12,255,1,0,0,0,128,248  db 254
,229,4,255,254,248,0,0,255,191,255,255,239,255,223,229,4,255  db 229,10,0,229,5,
192,128,229,37,0,109,110,108,108,236,229,7,0,227  db 48,51,54,51,229,44,0,96,96,
102,108,120,108,102,229,17,0,255,255  db 229,19,0,229,4,255,247,231,71,7,135,199
,231,231,247,252,255,255  db 255,31,15,15,229,6,7,15,15,31,127,229,6,255,252,229
,4,255,229,8  db 0,15,25,24,24,24,25,15,229,38,0,159,48,30,3,62,229,7,0,198,111 
 db 237,108,236,229,46,0,121,205,253,192,120,229,17,0,255,255,229,19  db 0,229,1
2,5,31,31,31,15,15,7,7,131,131,193,193,224,224,240,240,249  db 249,255,171,85,17
0,85,170,86,229,4,255,229,10,0,241,155,251,131  db 241,229,38,0,199,96,103,108,1
03,229,5,0,124,102,102,124,120,108  db 102,229,46,0,108,113,97,97,96,229,17,0,25
5,255,229,19,0,229,12  db 255,224,241,243,243,231,231,207,207,159,159,63,63,127,
127,229,5  db 255,181,86,235,85,237,186,229,4,255,229,8,0,48,48,240,48,48,48  db
 240,229,38,0,155,220,216,216,216,229,7,0,120,204,204,205,120,229  db 46,0,241,1
55,249,128,243,229,17,0,255255,135,4,1,229,11,7,3,1,4,229,7,7,1,229,4,255,229,8,
0  db 48,176,62,51,51,179,51,229,36,0,48,48,120,48,48,48,24,229,7,0,192  db 224,
96,102,102,12,229,45,0,152,152,152,248,24,224,229,16,0,255  db 255,229,19,0,229,
12,255,131,0,192,248,254,254,229,8,255,254,254  db 120,1,229,11,255,229,10,0,60,
102,126,96,60,229,36,0,1,3,229,5,1  db 229,80,0,255,255,229,19,0,229,13,255,127,
63,31,14,14,229,6,4,12  db 14,30,63,127,229,12,255,229,8,0,1,1,121,205,193,205,1
21,229,36  db 0,159,177,177,159,129,131,158,229,5,0,  N,80,81,65,69,5,20,0,85,64
  db 0,85,65,84,5,84,21,80,0,1,85,21,80,21,65,64,0,0,85,69,5,80,5,20,21,65,65,65
,85,20,0,1,64  db 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
85,0  ds 33 ds 33 ds 33 ds 33 ds 33 ds 33 ds 33 ds 33  db 0,85,0,0,0,0,0,0,0,0,0
,0,0,0,0,0,0,0,0,81,64,0,5,5,0,0,0,0,0,0,0,0,0  db 1,65,64,0,0,0,0,0,0,0,0,0,0,0
,0,0,0,0,0,80,0,0,5,0,0,0,0,0,0,0,0,0,0  db 0,80,1,84,20,5,5,80,0,1,65,65,85,5,8
0,81,64,0,21,81,65,84,21,69,5,80,85,64,85,5,20,80,80  db 0,20,0,5,20,5,205,229,1
98,0,255  db 255,229,198,0,255,255,229,198,0,255,255,229,198,0,255,255,229,198  
db 3,255,229,0,0,0,0,0,0    *** DATAMenu sprite    .menuspdb 0,0,0,0,0,85,5,0,0,
0,0,1,64,0,0,0,80,0,0,0,0,0,0,0,0,0,0,1,64,0,0,0,0  db 0,0,0,0,1,65,69,0,0,0,0,1
,64,0,0,0,80,0,0,0,0,0,0,0,0,0,0,1,64,0,0,0,0  db 0,0,0,0,1,64,5,84,5,80,21,65,6
5,64,0,21,80,85,1,84,20,20,20,80,21,65,85,5,80,0,0,0,0  db 0,0,0,0,1,64,5,5,20,2
0,80,81,69,0,0,80,81,65,69,5,20,20,85,84,80,81,65,65,64,0,0,0,0  db 0,0,0,0,1,64
,5,5,21,84,80,1,20,0,1,65,69,0,20,20,84,0,0,80,81,69,5,5,5,20,20,80,80,1,69,64,8
0,80  db 0,5,1,85,5,20,21,84,0,1,65,65,84,21,84,80,0,0,80,81,69,0,5,5,20,20,80,8
0,85,69,0,80,80  db 1,65,69,5,1,80,20,0,0,1,65,64,5,20,0,80,0,0,80,81,69,5,5,5,2
0,20,80,81,65,69,0,21,80  db 0,85,1,85,0,64,5,80,0,0,85,69,84,5,80,80,0,0,21,81,
65,84,1,69,5,80,80,80,85,69,0,0,80  db 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
,0,0,0,0,0,0,0,0,0,0,21,64  ds 33 ds 33 ds 33 ds 33 ds 33 ds 33 ds 33 ds 33  db 
0,0,0,0,0,0,0,1,84,0,0,0,1,64,0,0,,84,0,0,80,81,65,69,0,20,20,81,20,85,81,65,65,
64,0,0,0,0  db 0,0,0,0,1,65,69,5,20,0,80,81,69,0,0,80,81,65,69,5,20,20,80,20,80,
1,65,65,64,0,0,0,0  db 0,0,0,0,0,85,5,5,5,80,21,65,65,64,0,21,80,85,1,84,5,84,80
,20,21,65,65,64,80,0,0,0,0  ds 33 ds 33 ds 33 ds 33 ds 33 ds 33 ds 33 ds 33 ds 3
3  db 0,1,85,0,20,80,80,0,0,0,0,0,0,0,0,0,0,0,81,64,0,5,5,0,0,0,0,0,0,0,0,0,0  d
b 0,1,64,0,20,0,80,0,0,0,0,0,0,0,0,0,0,0,80,0,0,5,0,0,0,0,0,0,0,0,0,0,0  db 0,1,
64,5,84,81,84,0,1,65,65,85,5,80,81,64,0,21,81,65,84,0,0,0,80,80,0,0,0,0,0,0,0,0,
0,0,0,0  db 0,0,0,0,0,0,0,0,80,0,0,0,1,64,0,0,0,0,0,80,0,0,0,0,0,0,0,0,0,0,0,0,0
  db 0,0,0,0,0,0,0,0,80,85,64,85,69,81,69,20,20,21,65,84,80,85,5,84,5,84,0,0,0,0
,0,0,0  db 0,0,0,0,0,0,0,0,80,80,81,64,1,65,80,20,20,80,80,80,81,65,69,5,20,0,0,
0,0,0,0,0,0  db 0,0,0,0,0,0,0,0,80,80,80,85,1,65,64,20,20,80,0,80,81,65,69,5,5,8
0,0,0,0,0,0,0,0  db 0,0,0,0,0,0,0,0,80,80,80,1,65,65,64,20,20,80,80,80,81,65,69,
5,0,20,0,0,0,0,0,0,0  db 0,0,0,0,0,0,0,1,84,80,81,85,0,81,64,5,84,21,64,20,80,21
,69,5,80,85,64,85,5,20,80,80,0  db 0,1,84,20,20,80,80,0,1,65,69,0,20,20,84,0,0,8
0,81,69,5,5,5,20,20,80,80,1,69,64,80,80,0  db 0,1,64,20,20,80,80,0,1,65,65,84,21
,84,80,0,0,80,81,69,0,5,5,20,20,80,80,85,69,0,80,80,0  db 0,1,64,20,20,80,80,0,1
,65,64,5,20,0,80,0,0,80,81,69,5,5,5,20,20,80,81,65,69,0,21,80,0  db 0,1,85,5,84,
80,20,0,0,85,69,84,5,80,80,0,0,21,81,65,84,1,69,5,80,80,80,85,69,0,0,80,0  db 0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,21,64,0  ds 33 ds 33 d
s 33 ds 33 ds 33 ds85,5,5,21,80,0,0,0,0,0,0,0      *** ROUTCheck document    .sp
ellcall clear call cls2  ld hl,sfntx call string ld ix,sfn    call input jp c ,m
ain     ld de,inbuff call &BC77 jp nc,pause     ld (ftype),a ld (header),hl  ld 
hl,dfntx call string ld ix,dfn    call input jp c ,main     ld de,otbuff call &B
C8C jp nc,pause  ld a,(ftype) cp &22 call nz,retype    ld hl,0     ld (words ),h
lZero word count  ld hl,&4000 ld (igtop),hlZero "ignore" dictionary  call cls1 3
3 ds 33 ds 33  db 0,80,0,0,0,0,0,80,0,0,0,0,0,0,0,0,0,0,1,69,0,0,20,20,0,0,0,0,0
,0,0,0,0  db 0,80,0,0,0,0,0,80,0,0,0,0,0,0,0,0,0,0,1,64,0,0,20,0,0,0,0,0,0,0,0,0
,0  db 0,80,1,84,5,80,21,80,0,5,5,5,84,21,65,69,0,0,85,69,5,80,85,20,21,65,85,1,
84,20,81,65,64  db 0,80,5,5,0,20,80,80,0,5,5,20,0,80,81,80,0,1,65,69,20,20,20,20
,80,81,65,64,5,21,1,65,64  db 0,80,5,5,5,84,80,80,0,5,5,5,80,85,81,64,0,1,65,69,
20,0,20,20,80,81,65,65,85,20,1,65,64  db 0,80,5,5,20,20,80,80,0,5,5,0,20,80,1,64
,0,1,65,69,20,20,20,205,255,229,123,0,224,0,192,96,96,96,192,229  db 68,0,255,25
5,229,123,0,3,6,12,15,12,12,7,229,68,0,255,255,229,123  db 0,204,12,12,207,108,1
08,204,229,68,0,255,255,229,123,0,223,216  db 216,222,216,216,216,229,68,0,255,2
55,229,198,0,255,255,229,198  db 0,255,255,229,198,0,255,255,229,198,0,255,255,2
29,198,0,255,255  db 229,198,0,255,255,229,198,0,255,255,229,198,0,255,255,229,1
98,0  db 255,255,229,198,0,255,255,229,198,0,255,255,229,198,0,255,255,229  db 1
98,0,255,255,229,198,0,255,255,229,198,0,255,25  Neady at 0  .conpldec hl call l
dahl and 128 jr z,conplLast character 0  .conp2dec hl call ldahl and 128 jr z,co
np2Rewind until "end of word"  .conp3inc hl call ldahl or a    jr z,conp3...just
 in case it's 0...  jp conprt    .conqtcall &BB6C jp option      --- subrFind ad
dress of closest word in dictionary    .confdld a,(word) call startGet start add
ress of letter  xor a ld (best),aBest number of letters so far    .conolld de,wo
rd+1 ld b,1Start from second letter 4 jr z,putwskContinue with non-ASCII char   
ld c,a call putchr jp nc,pause  write character   ld a,c call disp   .putwskjp s
pllp    --- subrPatch if word ends in apostrophe    .apoadjld a,(iy-1) cp "'" jr
   nz,apoads  ld a,(char) cp 254 call nz,&BC86Return last character  ld a,"'" ld
 (char),aNon-ASCII char was apostrophe  dec iy dec b retShorten word by one lett
er    Patch if word ends in "'s"    .apoadsld a,b cp 3 ret c  ld a,(iy-1) call u
case cp "S" rClear #1    .spllpcall &BC80 jp nc,spleof ld c,aGet character, exit
 if EOF  call asc   jp c ,isword  if ASCII, go to word routine  call &BC95 jp nc
,pause ld a,cWrite character  call disp  jp    spllpDisplay on-screen and loop  
  +++ SECTWord encountered    .iswordld hl,(words) inc hl ld (words),hlIncrease 
word count  ld iy,wordStore first character  ld (iy),a ld b,1 inc iy     .iswlpc
all &BC80 jp nc,isnascCopy out word  call asca  jr nc,isnasc   ld et nz  ld a,(i
y-2)  cp "'" ret nz  call &BC86Return last character  ld a,253    ld (char ),aNo
n-ASCII char is "'s"  ld a,(iy-1) ld (chars),a  store type of S  dec iy dec bSho
rten word by two letters  dec iy dec b ret     --- subrPut non-ASCII character t
o file, patching if "'s"    .putchrcp 253 jp nz,&BC95  ld a,"'" call disp  ld a,
"'" call &BC95  ld a,(chars) ld c,a jp &BC95      +++ SECTQuit spell-checking   
 .quitcall &BC7D jp resume      +++ SECT(iy),a inc b inc iy   ld a,b cp 32 jr nz
,iswlp  maximum 32 characters  ld a,254    254 (ignored) if overflow    .isnascl
d (char),aStore non-ASCII character  call apoadjIf last apostrophe, patch  ld a,
(iy-1) or 128 ld (iy-1),aSet high bit of last letter  ld a,b cp 1  jp z,putwrdIf
 one letter long, forget it    --- sectCheck word    .dochkcall check   jp c,put
wrdIs it in the dictionary   ld bc,&7FC7 out (c),cIs it in the user dictionary  
ld ix,(Consult word    .consltcall &BB6CScreen display  ld hl,contx call string 
    call confdHL  closest word in dictionary  .conprtpush hl ld hl,&0F01 call &B
B75 pop hlPrint it  push hl    ld a,24 call &BB5A call new    ld a,24 call &BB5A
    ld a,18 call &BB5A   pop hl     .conkeycall &BB06 call ucaseGet keypress  cp
 "U" jr z,use   cp 13  jr z,use  use  cp "Q" jr z,conqt cp 252 jr z,conqt  quit 
 cp "N" jr z,connx cp 241 jr zustop) call cdict    ld bc,&7FC0 out (c),c  jp c,p
utwrd   ld ix,(igtop) call cdict jp c,putwrdIs it in the ignore dictionary  ld b
c,2 call &BBB7Select stream 2  .optioncall &BB9C ld hl,word   call str7Print wor
d in inverse  call &BB9C ld hl,notftx call string   ld hl,opttx call stringPrint
 "options"...  .opkeypcall &BB06 call ucaseGet keypress   cp "E" jp z ,edit  edi
t word   cp "A" jp z ,ignall  ignore all   cp "L" jp z ,learn  lea,connx  next  
cp "P" jr z,conpr cp 240 jr z,conpr  previous  jr conkey    .useld hl,newwrd ld 
bc,33Copy if to be used  ld de,word   ldir jp resume     .connxld d,h ld e,l  .c
onn1call ldahli and 128 jr z,conn1Fast forward to end of word  .conn2call ldahli
 cp  26  jr z,coneofEnd of file       or  a   jr z,conn2End of letter  dec hl jp
 conprtNo, so do the letter  .coneofld h,d ld l,e jp conkeyEnd of file - panic! 
   .conprld a,h or l jr z,conkeyAlrrn   cp "Q" jp z ,quit  quit   cp "C" jp z ,c
onslt  consult   cp "I" jp nz,opkeyp  ignore  .resumecall &BB6CClear screen  ld 
bc,2 call &BBB7Deselect stream 2    --- sectSend word to file    .putwrdld iy,wo
rdOutput word to disc  .putwlpld a,(iy) and 127Write entire word until bit 7   l
d c,a call &BC95  jp nc,pause  write character   ld a,c call disp   ld a,(iy)  d
isplay on screen   inc iy and 128     jr z,putwlp   ld a,(char) cp 25  Nwlc   .n
ewuccall ldahl  and 127    call &BB5A  ld (ix),a inc ixYes  call ldahli and 128 
   jr z,newuc jr newfn   .newlccall ldahl  call lcase call &BB5A  ld (ix),a inc 
ixNo  call ldahli and 128    jr z,newlc jr newfn   .newfnld a,(ix-1) or  128Set 
bit 7  ld (ix-1),a ret     --- subrFind initial letter for HL    .initld iy,lett
er ld a,64  .initlpld e,(iy) inc iy  ld d,(iy) inc iy  push hl or a sbc hl,de po
p hl  ret c inc a jr initl0 ret  .dispspld a,32 ret    --- subsCheck document su
broutines    .retypeld hl,(header) ld b,128Generate header  .retlpld a,(hl) call
 &BC95 jr nc,reterr   inc hl djnz retlp ret   .reterrpop hl jr pause   .cls1ld b
c,1 call &BBB7 call &BB6C ld bc,1 jp &BBB7CLS #1  .cls2ld bc,2 call &BBB7 call &
BB6C ld bc,2 jp &BBB7CLS #2  .pausecall &BB06 jp outerPause, restart    *** ROUT
Edit user dictionary    .ueditld hl,(ustop)  ld de,&4000Don't edip        +++ SE
CTEdit word    .editcall &BB6CClear screen  ld hl,edittx call stringPrompt  ld i
x,inpbuf call inputInput  push af push bc call &BB6CClear screen  pop bc pop af 
  jp c,option ld a,b or aIf ESC, quit  jp z,optionIf string empty, quit    ld ix
,inpbuf ld hl,wordCopy word from input buffer  .edittrld a,(ix) inc ix   ld (hl)
,a inc hl djnz edittr   dec hl set 7,(hl)  set high bit  ld bc,2 call &BBB7 jp d
ochkTry checking tht if not there  or a sbc hl,de jp z,main   ld bc,&7FC7 out (c
),cBank switch  call clear    ld hl,&4000  .eddoscall edscr  push hl   ld bc,2 c
all &BBB7 call &BB6C   ld hl,editx call string   ld ix,edtab ld hl,&1101  .edklp
 call edkey   cp "A" jp z ,edadd cp 127 jp z,eddel   cp "N" jp z ,ednxt cp "P" j
p z,edprv   cp "Q" jr nz,edklp   ld bc,2 call &BBB7  pop hl    ld bc,&7FC0 out (
c),c jp outerQuit, bank switch    --- routNext screen    .ednxtld de,(is one...!
      +++ SECTIgnore all occurrences of word    .ignallld hl,(igtop)Find where t
o add  ld a,h cp &77 jp z,dcfull   call addwrd ld (igtop),hlAdd and update point
er  jp resume    +++ SECTLearn word    .learnld hl,(ustop)Find where to add  ld 
a,h cp &7F jp z,dcfull   ld bc,&7FC7 out (c),c call addwrdAdd in banks, update p
ointer  ld bc,&7FC0 out (c),c ld (ustop),hl   jp resume     --- subrAdd word to 
dictionary    .addwrdld ix,word  .addw .conlpld a,(de) call ucase ld c,aIs it th
e same  call ldahl cp c jr nz,conff   inc b inc hl inc deIf so, increase count a
nd loop  and 128 jr z,conlp jr conrw     .conffcall ldahli or a jr z,conr2Fast f
orward to end of word    bit 7,a jr z,conff   ld a,(best) cp b   jr z ,conolLoop
 if best the same       jr nc,conrwIf there was a better, rewind  ld a,b ld (bes
t),a jr    conolElse store as best and continue    .conr2dec hlPast 0 if endlpld
 a,(ix) inc ix call ucase  ld (hl),a inc hl  and 128 jr z,addwlp ret    --- subr
Complain that dictionary is full    .dcfullcall &BB6C ld hl,fulltx call string  
call &BB06 call &BB6C jp option      +++ SECTEnd of spelling    .spleofcall &BC7
AClose input file  call &BC8FClose output file  ld bc,2 call &BBB7Print "finishe
d" message   call &BB6C    ld hl,fin1tx  call string    ld hl,(words) call prhl 
   ld hl,fin2tx  call string   ld bc,2 of letter  .conrwdec hlMove back past hig
h byte  .conrldec hl call ldahlFind start of word  bit 7,a jr z,conrl inc hl ret
     --- subrMove (printing) from HL to .newwrd, preserving case    .newld ix,ne
wwrd  ld a,(word) ld c,aInitial u/c  call ucase  cp c jr nz,inilc   call init   
jr inirsYes  .inilccall init   call lcaseNo  .inirsld (ix),a   call &BB5A inc ix
Place/print    ld a,(word+1) call ucaseRest u/c  cp (ix)   jr nz,ne call &BBB7  
 jp pause    --- subsIs a character ASCII (C if yes, NC if not)    .ascacp "'" c
cf ret z  .asccp "A" jr c,notasc cp "" ret c  cp "a" jr c,notasc cp "" ret c  .n
otascor a ret    --- subsDisplay character on screen    .disppush af ld bc,1 cal
l &BBB7 pop af  cp &8A  call z,displf  cp &90  call z,dispsp  cp 10   jr   z,dis
pdo  cp 13   jr   z,dispdo  cp 32   jr   c,dispqt  cp 127  jr  nc,dispqt  .dispd
ocall &BB5A  .dispqtld bc,1 jp &BBB7  .displfld a,1  Ndken  ld a,h add 19 ld h,a
 inc ix inc ix jr edken      +++ SUBRPrint screen (starting at HL)    .edscrpush
 hlClear table   ld hl,edtab   ld (hl),0    ld de,edtab+1 ld bc,55 ldir    ld bc
,1 call &BBB7 call &BB6C  select window #1  pop hl   ld ix,edtab ld b,28    .eds
lpld de,(ustop)Are we at the end  push hl or a sbc hl,de pop hl jr z,edret  retu
rn if so  ld (ix),l inc ixElse store in table  ld (ix),h inc ix   call str7     
   Do for 27 words    .edrdpush hl ld bc,2 call &BBB7 pop hl jp eddosRedo list  
  --- routAdd word    .edaddld a,(ustop+1) cp &7F jp z,edklpDon't do it if dicti
onary full  pop hl call &BB6C  ld hl,addtx call string  ld ix,inpbuf call inputI
nput  jp c,edaex  ld a,b or aIf ESC, quit  jp z,edaexIf string empty, quit    ld
 ix,inpbuf ld hl,wordCopy word from input buffer  .edttrld a,(ix) inc ix   ld (h
l),a inc hl djnz edttr   dec hl set 716 call edtabuPrint  djnz edslp...and loop 
 .edretld bc,1 jp &BBB7Deselect #1 and return    .edtabds 56Quick reference tabl
e    .edtabupush hl call &BB78 ld c,h pop hlTabulate to next place  ld a,19 cp c
 jr nc,edtabd   ld a,38 cp c jr nc,edtabd   ld a,57 cp c jr nc,edtabd   ld a,10 
call &BB5ANext row if at end  ld a,13 jp   &BB5A     .edtabdpush af ld a,9 call 
&BB5A pop afActual tab routine  inc c cp c jr nz,edtabd ret,(hl)  set high bit  
call check ld bc,&7FC7 out (c),cAlready in the dictionary  jp c,edaex ld ix,(ust
op) call cdictAlready in user dictionary  jp c,edaex ld hl,(ustop) call addwrdNo
, so add word  ld (ustop),hl   .edaexld hl,(edtab) jp edrd    --- routDelete wor
d    .eddelld a,(ix) or (ix+1) jp z,edklpDon't do it if not on word  pop hl ld l
,(ix) ld h,(ix+1)Find address of word  ld e,l ld d,h  .eddltld a,(de) inc de and
 128 jr z,eddltFind address                 *** ROUTLoad user dictionary    .ulo
adcall clear  ld hl,cfntx call string ld ix,sfn    call input jp c ,main     ld 
de,inbuff call &BC77 jp nc,pause  cp 3 jp nz,ntdictDictionary file  set 6,b ld (
ustop),bcSet length  ld bc,&7FC7 out (c),cRead file in  ld hl,&4000 call &BC83  
 ld bc,&7FC0 out (c),c   push af call &BC7A pop af   jp nc,pause jp main    .ntd
ictcall clear  ld hl,ntdtx"Wrong filetype" error  call string  of next word  ld 
bc,(ustop)    .edlpld a,d cp b jr nz,eddnotAre we at the end yet  ld a,e cp c jr
 z ,eddend   .eddnotld a,(de) inc deNo, so copy byte and loop  ld (hl),a inc hl 
jr edlp   .eddendld (ustop),hl jp edaexSet new "top" and restart      +++ SUBRGe
t key, control cursor movement    .edkeypush hl ld bc,1 call &BBB7 pop hl  .edke
npush hl call &BB75 pop hl ld a,242 call &BB5A call &BB06 push af  push hl call 
&BB75 pop hl ld a,32  call &BB5A jp pause       *** ROUTSave user dictionary    
.usaveld hl,(ustop)  ld de,&4000Don't save if not there  or a sbc hl,de jp z,mai
n     call clear  ld hl,cfntx call string ld ix,sfn    call input jp c ,main    
 ld de,inbuff call &BC8C jp nc,pause  ld bc,&7FC7 out (c),c  ld hl,&4000    ld  
a,3Write file  ld de,(ustop) res 6,d call &BC98   ld bc,&7FC0 out (c),c   push a
f call &BC8F pop af   jp nc,pause jp main        *** ROUTInstructions       pop 
 af  cp 240 jr z,edkup cp 241 jr z,edkdn  cp 242 jr z,edklt cp 243 jr z,edkrt  c
all ucase push af  push hl ld bc,1 call &BBB7 pop hl  pop af ret    .edkupld a,l
 cp 1 jr z,edken  dec l ld de,-8 add ix,de jr edken  .edkltld a,h cp 17 jr z,edk
en  sub 19 ld h,a dec ix dec ix jr edken  .edkdnld a,l cp 7  jr z,edken ld a,(ix
+8) or (ix+9) jr z,edken  inc l ld de,8 add ix,de jr edken  .edkrtld a,h cp 74 j
r z,edken ld a,(ix+2) or (ix+3) jr z,eedtab+54)Is there a next screen  ld a,d or
 e jp z,edklp   pop hl ex de,hl jp edrdYes, so do it    --- routPrevious screen 
   .edprvld a,(ix) or (ix+1) jp z,edklpDon't do it if not on word  pop hl ld hl,
(edtab) ld b,27Get first word address  .edplpld a,h cp &40 jr nz,epnotsIs it &40
00  ld a,l or a   jp z ,edrd  if so, redo page  .epnotsdec hlSkip last high byte
  .edpskdec hl ld a,(hl) and 128 jr z,edpskSkip last word  inc hl djnz edplp    
Npdel ld a,b or a jr z,inpkey dec ix ld (ix),0   ld a,8 call &BB5A ld a,16 call 
&BB5A dec b jr inpkey  .inpescpop hl ld (hl),0 ld b,0 scf  ret  .inpentpop hl   
 or a ret        *** DATAStrings    .sfntxdb 31,24,14,"Source filename    ",0  .
dfntxdb 31,24,16,"Corrected filename ",0  .cfntxdb 31,24,15,"Dictionary filename
 ",0  .fin1txdb "Finished checking document (",0  .fin2txdb " words). Press any 
key to continue.",0  .notftxdb " not found in dictionary.",0  .opttxdb 31,1ld l,
a ld h,0  ld de,letter-2 add hl,de  ld e,(hl) inc hl  ld d,(hl) ex de,hl ret    
  *** SUBRClear lower screen area    .clearld hl,&010B xor a  ld de,&4E17 jp &BC
44      *** SUBRLD A,(HL) - extra banks    .ldahlpush bc push hl   ld b,a ld a,h
 and &C0   rlca rlca add &C4   ld c,a   ld a,h and &3F or &40 ld h,a   ld a,b ld
 b,&7F   out (c),c ld a,(hl)   ld c,&C0 out (c),c  pop hl pop bc  ret    .ldahli
call ldahl  inc hl ret      *** SUBRLD (HL),A - extra banks      .helpcall clear
  ld bc,2 call &BBB7#2 prompts  ld hl,helptx call string   ld bc,2 call &BBB7   
  ld bc,1 call &BBB7#1  ld de,&020C ld hl,&4D14 call &BB66  enlarge it  ld hl,&4
0 ld b,0  .helppdld a,b cp 6 jr z,helpkyOn last screen  push bc push hl call &BB
6C pop hl pop bcCLS  .helpprld a,(hl) or a jr z,helppsPrint a screen  call str7 
  ld a,10 call &BB5A   ld a,13 call &BB5A jr helppr   .helppsinc b inc hlSkip 0 
  .ldhlapush bc push hl   ld b,a ld a,h and &C0   rlca rlca add &C4   ld c,a   l
d a,h and &3F or &40 ld h,a   ld a,b ld b,&7F   out (c),c ld (hl),a   ld c,&C0 o
ut (c),c  pop hl pop bc  ret    .ldhlaicall ldhla  inc hl ret      *** SUBRUpper
/lower case conversion    .ucasebit 7,a jp nz,ucase7   cp &61 ret c cp &7B ret n
cadd &E0 ret  .ucase7 cp &E1 ret c cp &FB ret nc add &E0 ret  .lcaseand 127 cp &
41 ret c cp &5B ret nc add &20 ret    *** SUBRPrint strin .helpkycall &BB06 call
 ucaseGet keypress  cp "Q" jr z,helpqt cp 252 jr z,helpqt  quit  cp "C" jr z,hel
ppd cp 32  jr z,helppd  continue  jr helpky  .helpqtld de,&020C ld hl,&4D13 call
 &BB66Return window to normal  ld bc,1 call &BBB7 call clear jp mainQuit      **
* SUBRCheck word at .word  Returns C if found, NC if not found    .checkld a,(wo
rd) call startGet start address of letter    .chkolld de,word+1Start from second
 letter  .chklpld a,(de) call g    .stringld a,(hl) or a ret z call &BB5A inc hl
 jr string  .str7ld a,(hl)    and 127 call &BB5A  ld a,(hl) inc hl and 128 jr z,
str7 ret  .str716ld c,0  .s716lld a,(hl)   and 127 call &BB5A inc c bit 4,c ret 
nz  ld a,(hl) inc hl and 128 jr z,s716l ret    *** SUBRPrint HL as (up to) 5-dig
it decimal    .prhlld c,0  ld de,10000call prhlr  ld de,1000call prhlr  ld de,10
0call prhlr  ld de,10call prhlr  ld de,1ld c,1  .prhlrxor a  .prhllpscf ccf sbc 
hl,de jucase ld c,aConvert to upper case  call ldahl cp c jr nz,chkffIs it the s
ame  inc hl inc de and 128 jr z,chklpContinue if not end of word  scf ret  if en
d, return "found"    .chkffcall ldahli or a ret zFast forward to end of word  bi
t 7,a jr z,chkff   jp chkol    *** SUBRCheck word at .word in dictionary at &400
0  End of dictionary at IX  Returns C if found, NC if not found    .cdictld hl,&
4000Dictionary address  .cdolpush hlEnd of dictionr c,prhlo  inc a jr prhllp  .p
rhloadd hl,de or a jr nz,prhly cp c ret z  .prhlyld c,1 add &30 call &BB5A ret  
    *** SUBRInput string (maximum 16 characters)  On entry, address IX  On exit 
, address HL, length B    .inputpush ix ld b,0  .inpkey call &BB8A   call &BB06 
push af   call &BB8A pop  af   cp 13  jr z,inpent   cp 252 jr z,inpesc   cp 127 
jr z,inpdel jr nc,inpkey   cp 32  jr c,inpkey   bit 4,b jr nz,inpkey ld (ix),a c
all &BB5A inc ix inc b jr inpkey  .inary yet   ex de,hl push ix pop hl    or a s
bc hl,de   pop hl ret z ccf ret nc     .cdnotld de,wordStart from first letter  
.cdlpld a,(de) call ucaseConvert to upper case  cp (hl) jr nz,cdff inc hlIs it t
he same  inc de and 128 jr z,cdlpContinue if not end of word  scf ret  if end, r
eturn "found"    .cdffbit 7,(hl) inc hl jr z,cdffFast forward to end of word  jr
 cdol      *** SUBRFind start address of letter A    .startand &1F add a    N   
      466QRST  dw45839,47072,47669,48781UVWX  dw48785,48879,48949YZend of data  
    *** DATAMiscellaneous    .hlnamedb "SPELL.HLP"Help filename  .mdnamedb "MAST
ER.48K"Master dictionary filename    *** VARIDictionary control    .igtopdw &400
0First free address in "ignore"  .ustopdw &4000First free address in user dict  
  *** VARIFile variables    .ftypedb 0Source file type  .headerdw 0Address of so
urce header  .sfnds 16Source filename  .dfnd3  call &BC7A    ld hl,&C140 ld de,&
3E8 call cstsr  ld hl,&C190 ld de,&448 call cstsr  ld hl,&C1E0 ld de,&4A8 call c
stsr  ld hl,&C230 ld de,&508 call cstsr  ld hl,&C280 ld de,&568 call cstsr  ld h
l,&C2D0 ld de,&5C8 call cstsr  ld hl,&C320 ld de,&628 call cstsr  ld hl,&C370 ld
 de,&688 call cstsr  ld hl,&C3C0 ld de,&6E8 call cstsr  ld hl,&C410 ld de,&748 c
all cstsr    ld hl,fname ld b,12 call &BC77 ld hl,&C000 call &BC83 call &BC7A  l
d hl,lname ld b,12 call &Bs 16Destination filename    *** VARISpell-checking    
.wordsdw 0Number of words checked  .chardb 0Non-ASCII character  .charsdb 0Type 
of s in "'s"  .wordds 33Word read in  .newwrdds 33Replacement word (Consult)  .i
npbufds 16Buffer for corrected word  .bestdb 0Nearest word so far (Consult)     
 *** SUBRLoad dictionary    .loadld de,&0040 ld c,7AMSDOS on  ld hl,&B0FF call &
BCCE   ld a,1 call &BC6BTape prompts off    ld hl,&3FFF C77 ld hl,font  call &BC
83 call &BC7A  ld hl,mname ld b,12 call &BC77 ld hl,music call &BC83 call &BC7A 
   ld bc,&0723 call crtc  ld bc,&0385 call crtc  ld bc,&0232 call crtc  ld bc,&0
621 call crtc  ld bc,&0130 call crtc  ld bc,&0C0C call crtc  ld bc,&0D40 call cr
tc    ld hl,10*96+&80 ld d,h ld e,l inc de ld (hl),255 ld bc,95 ldir  ld hl,18*9
6+&80 ld d,h ld e,l inc de ld (hl),255 ld bc,95 ldir    &4420 - start of first r
ow- &447F  &4480 - start of second row- &ld (hl),lNeeded for "prev" in Edit User
    ld hl,hlname ld b,9Load help file  ld de,inbuff call &BC77   ld hl,&40    ca
ll &BC83   call &BC7A     ld hl,mdname ld b,10Open dictionary  ld de,inbuff call
 &BC77   push hl pop ix   ld bc,&7FC4     .load16ld a,(&BC83) cp &CF jr z,tape16
Load 16k blocks  ld (ix+64),0 ld (ix+65),&40from disc  ld (ix+66),0 out (c),c   
push bc push ix    ld hl,&4000 call &BC83   pop ix pop bc jr loa,3,"Please selec
t   ",24,"E",24,"dit   ",24,"C",24,"onsult   "  db 24,"L",24,"earn   ",24,"I",24
,"gnore   Ignore "  db 24,"a",24,"ll   ",24,"Q",24,"uit",0  .fulltxdb "Sorry, th
ere is no memory left to add words. Press any key to continue.",0  .edittxdb "In
put corrected word ",0  .addtxdb "Input word to add ",0  .ntdtxdb 31,27,14,"Not 
a user dictionary file."  db 31,34,16,"       Press any key",0  .editxdb 31,1,3,
"Please select   ",24,"A",24,"dd   ",24,"Del",24,"ete   "  db 24,"N",24,"ext pag
dlp   .tape16out (c),c ld hl,&4000from tape  .tapelpcall &BC80 ld (hl),a inc hl 
  ld a,h cp &80 jr nz,tapelp     .loadlpinc c ld a,c cp &C7 jr nz,load16Loop  ld
 c,&C0 out (c),c     call &BC7AClose dictionary  ret  PELL   $$$(c) 1994 Richard
 Fairhurst    org &7800  write "spell.bin"  nolist    inbuffequ &1000  otbuffequ
 &1800   40from disc  ld (ix+66),0 out (c),c   push bc push ix    ld hl,&4000 ca
ll &BC83   pop ix pop bc jr loae   ",24,"P",24,"revious page   ",24,"Q",24,"uit"
,0  .contxdb 31,1,1,"Current word "  db 31,1,3,"Please select   ",24,"U",24,"se 
  ",24,"N",24,"ext word   "  db 24,"P",24,"revious word   ",24,"Q",24,"uit",0  .
helptxdb 31,1,2,"Please select   ",24,"C",24,"ontinue   ",24,"Q",24,"uit",0    *
** DATAASCII reference table    .letterdw0,3517,5401,10596ABCD  dw13958,16687,19
060,20224EFGH  dw21392,24133,24409,24610IJKL  dw25839,27821,28661,30622MNOP  dw3
5074,35298,38626,43  STS Meeting Demo / BTL 3 intro  starring Tamsin the Wonder 
Cat    org &8000  write "disc.bin"  nolist    cat1requ &C000  cat2requ &C12C  ca
t3requ &C258  cat1lequ &C384  cat2lequ &C4B0  cat3lequ &C5DC  catstequ &C708  mu
sicequ &D000    toplnequ &40009*96+&80+2    fontequ &9B00HIMEM-&1000 then page-a
ligned    *** INITInitialisation    ld a,1 call &BC0E    ld hl,&B0FF ld c,7  ld 
de,&0040 call &BCCE    ld hl,sname ld b,12  ld de,&C000 call &BC77  ld hl,&C000 
call &BC8  !N!!!!!!!!!ChaRleyTroniC MacBugs demo  (c)1995 CRTC/Systeme D    org 
&5000  nolist  limit &6700            Screen setup            ld a,2 call &BC0E 
         ld hl,macspr ld de,&C000 ld a,8  .macslp ld bc,160   ldir          ld b
c,&760  ex de,hl          add hl,bc   ex de,hl          dec a jr nz,macslp      
      di ld hl,(&38) ld (st38),hl              ld hl,&C9FB ld (&38 ),hl ei      
      ld bc,&7F10 ld a,&54 out (c),c out (c),a            ld de,610          ld 
hl,&C5A0 ld (hl),255    .postdo Maiall crtc  ld bc,&0619 call crtc  ld bc,&022E 
call crtc  ld bc,&0128 call crtc  ld bc,&0C30 call crtc  ld bc,&0D00 call crtc  
  ld a,2 jp &BC0E    -------------------------------- animation ----------------
------------    *** ROUTDisplay sprite in correct position    .displd a,(aniy) c
all scraddGet screen address  ld a,(anix) ld e,a ld d,0 add hl,deAdd x position 
 ld de,topln  add hl,deAdd base address    push hlGet sprite address   ld hl,(ca
tpic) ld h,0 n code    .ff     ld b,&F5  .ffloop in a,(c) rra          jr nc,ffl
oop            push de          ld bc,&7F8E out (c),c          ld  c,  &01 out (
c),c ld a,&54 out (c),a          dec c       out (c),c ld a,&4B out (c),a       
     Apple rasters            ld e,&54 halt          ld bc,&28C  .timing dec bc 
ld a,b or c jr nz,timing            ds 15          ld bc,&7F01 out (c),c        
  ld a,&52 out (c),a out (c),e ds 54          ld a,&52 out (c),a out (c),e ds 54
          ld a,&49 out (   add hl,hl add hl,hl    ld de,pictbl add hl,de    ld e
,(hl) inc hl    ld d,(hl) inc hl    ld a,(hl)   pop hl ex de,hl  jp sprite    .p
ictbldw cat1r,25,cat2r,25,cat3r,25,cat2r,25  dw cat1l,25,cat2l,25,cat3l,25,cat2l
,25  dw catst,21    --- subrConvert pixel line number A to screen address HL    
.scraddld c,a and &F812*(row8) for charrows  ld l,a ld h,0 add hl,hl add hl,hl p
ush hl   add hl,hl pop de add hl,de     ld a,c and 7 add ac),a out (c),e ds 54  
        ld a,&49 out (c),a out (c),e ds 54          ld a,&4E out (c),a out (c),e
 ds 54          ld a,&4C out (c),a out (c),e ds 54          ld a,&4F out (c),a o
ut (c),e ds 54          ld a,&55 out (c),a out (c),e            ld bc,&16  .tim2
   dec bc ld a,b or c jr nz,tim2          ld bc,&7F00 out (c),c          ld a ,&
55   out (c),a            Raster display            ld hl,colspc          ld bc,
&6  .tim3   dec bc ld a,b or c jr nz,tim3            ld bc,&7F8DCRTC Source Code
 Collection  volume 1    This disc contains Z80 source code for a number of well
-known  programs, for apprentice programmers to study and learn from.    All of 
the files are in Protext format and were written for Arnor's  excellent Maxam 1.
5 assembler. You won't be able to use them with  Turbo Assembler (at least, not 
the current version), so don't bother  trying.    Although the source code is no
t intended to be reused verbatim or  reassembled - indeed, some  out (c),c      
    ld  c,  &00 out (c),c          dec c di          ds 12 ld a,128  .rlinel out
ioutioutiouti outioutioutiouti ld bc,&7FFF ds 17 dec a jp nz,rlinel            o
uti      5*nop          ld c,&FF  2            ld a,&55 out (c),a ei            
Raster movement             ld a,(stage)           dec a jr z,stage1           d
ec a jr z,stage2           dec a jr z,stage3           dec a jr z,stage4        
   jp quitit    .stage1  ld ix,final1+20 ld b,6 ld iy,rred   jr rmloprograms (su
ch as the BTL 3 intro and  PowerSpell) require additional resources before they 
will work  properly - you are welcome to write for permission should you find a 
 routine you can't live without. Side B of the disc also contains  several subro
utines that you are free to use in your own programs.    Standard "Almost PD" co
nditions apply to all software on this disc it  may not be distributed commercia
lly or semi-commercially without  written permission from the author, and althou
gh you are we44DF  &44E0 - start of free memory    di ld hl,(&38) ld (r38),hl   
   ld hl,&C9FB ld (&38),hl ei    ld e,1 call music    .testlpld b,&F5  in a,(c) 
rra jr nc,testlp  ld bc,&7F00 ld a,&54 out (c),c out (c),a    call scroll  .coun
trld a,1 dec a jr nz,noanim  call disp  call update  .noanimld (countr+1),a  cal
l mwcalc  call music+3    ld bc,&7F00 ld a,&4C out (c),c out (c),a  .norsttjp te
stlp    .r38dw 0    call &BD19  call &BB09 jr nc,testlp    call music+6  ld bc,&
071E c  "N""""""""",0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0          db 
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,25
5          db 0,0,7,255,0,0,1,192,238,126,0,0,0,127,159,220,120,0,0,0,60,115,249
,231,128,0,0,31,207,239,227,249,192,0,0,254,127,31,199,231          db 63,184,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,6,0,1,161,236,0,0   
       db 224,0,0,48,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
,0,0,0,0,0,0          db 0,0,0,0,0,0,0,0,0,0,0,0,0,ld (hl),c   add hl,de ld (hl)
,c   add hl,de          ld (hl),&55 add hl,de ld (hl),&55 add hl,de          ld 
(hl),a   add hl,de ld (hl),&54 add hl,de          ld (hl),a   add hl,de ld (hl),
&56 add hl,de          ld (hl),&52 add hl,de ld (hl),&58 add hl,de          ld (
hl),&51 add hl,de ld (hl),&4B add hl,de          ld (hl),&4B add hl,de ld (hl),&
51 add hl,de          ld (hl),&58 add hl,de ld (hl),&52 add hl,de          ld (h
l),&56 add hl,de ld (hl),a   add hl,de          ld (hl),op  .stage2  ld ix,final
2+16 ld b,5 ld iy,rgreen jr rmloop  .stage3  ld ix,final3+20 ld b,6 ld iy,rblue 
 jr rmloop  .stage4  ld ix,final4+20 ld b,6 ld iy,rred    .rmloop  ld l,(ix+2) l
d h,(ix+3)  Get address in table           ld e,(hl) inc hl ld a,e Convert into 
sine position           ld d,(hl) inc hl or d jp z,dontin           ld (ix+2),l 
ld (ix+3),h  Store new address if not 0    .dontin  ld a,d cp 4 jr z,dontdr     
      ld l,(ix+0) ld h,(ix+1)  Get base address and subtract      &54 add hl,de 
ld (hl),a   ret    .rred   ld de,8 ld a,&5C ld c,&55          ld (hl),c   add hl
,de ld (hl),c   add hl,de          ld (hl),c   add hl,de ld (hl),c   add hl,de  
        ld (hl),c   add hl,de ld (hl),c   add hl,de  .rredn  ld (hl),a   add hl,
de ld (hl),&54 add hl,de          ld (hl),a   add hl,de ld (hl),&4C add hl,de   
       ld (hl),&4E add hl,de ld (hl),&4A add hl,de          ld (hl),&49 add hl,d
e ld (hl),&4B add hl,de          ld (hl),&4B add hl,de ld (hl),&49 ad      or a 
sbc hl,de jr c,dontdr           ld de,colser add hl,de           call subr      
           Draw raster  .dontdr  ld de,-4 add ix,de           djnz rmloop       
        And repeat for all of them             ld a,(stage) cp 2 jr nz,not2    F
ix for 2/3 overlap           ld de,8 ld a,&5C ld c,&55           ld hl,colser+48
+&381 call rredn           ld hl,colser+48+&201 call rredn    .not2    ld a,(tog
o) dec a jr nz,oldgo           ld hl,stage inc (hl) ld a,150  .oldgo   ld (togo)
,a  d hl,de          ld (hl),&4A add hl,de ld (hl),&4E add hl,de          ld (hl
),&4C add hl,de ld (hl),a   add hl,de          ld (hl),&54 add hl,de ld (hl),a  
 ret            *** VARI         Final position of rasters    .final1 dw &200,si
neer+0  , &201,sineer+0            dw &280,sineer+30          dw &300,sineer+60 
         dw &380,sineer+90 , &381,sineer+90    .final2 dw &281,sineer+30 , &282,
sineer+30 , &283,sineer+30          dw &301,sineer+60          dw &381,sineer+90
    .final3 dw &203,sineer.quitit pop de            Loop and reset            de
c de ld a,d or e jp nz,ff            di ld hl,(st38) ld (&38),hl          ei cal
l &BB06 ret            *** SUBR         CALL IY    .subr   push iy ret          
  *** SUBR         Poke rasters into position    .rblue  ld de,8 ld a,&44 ld c,&
55          ld (hl),c   add hl,de ld (hl),c   add hl,de          ld (hl),c   add
 hl,de ld (hl),c   add hl,de          ld (hl),&55 add hl,de ld (hl),&55 add hl,d
e          ld (hl),a   add hl,de l+0  , &204,sineer+0  , &205,sineer+0          
  dw                  &284,sineer+30          dw                  &304,sineer+60
          dw                  &384,sineer+90    .final4 dw &206,sineer+0  , &207
,sineer+0            dw &286,sineer+30          dw &306,sineer+60          dw &3
86,sineer+90 , &387,sineer+90            *** VARI         Colours for rasters   
         ds 128  .colser ds 48  .colspc ds 1024,&55            *** DATA         
Macintosh sprite    .macspr db 255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0d (hl),&54 add h
l,de          ld (hl),a   add hl,de ld (hl),&55 add hl,de          ld (hl),&57 a
dd hl,de ld (hl),&53 add hl,de          ld (hl),&53 add hl,de ld (hl),&4B add hl
,de          ld (hl),&4B add hl,de ld (hl),&53 add hl,de          ld (hl),&53 ad
d hl,de ld (hl),&57 add hl,de          ld (hl),&55 add hl,de ld (hl),a   add hl,
de          ld (hl),&54 add hl,de ld (hl),a   ret    .rgreen ld de,8 ld a,&40 ld
 c,&55          ld (hl),c   add hl,de ld (hl),c   add hl,de            #N#######
##,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0          db 0,0,7,255,0,0,1,192,238,126,0,0
,0,112,31,221,240,0,0,0,231,115,249,195,128,0,0,28,15,207,227,249,192,0,1,192,12
7,31,199,231          db 63,56,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
,0,0,0,0,12,48,195,0,1,170,172,0,1          db 255,255,255,255,255,255,255,255,2
55,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,2
55,255,255,255,255,255,255,255,255,255,255,255          db 255,255,255,255,255,2
55,255,255,255,255,255,255,255,255lcome to  copy it on an individual basis, you 
should copy the whole disc rather  than just individual files.    Happy hacking!
    Richard Fairhurst  October 1997    CRTC/Systeme D, Tea Cottage, Bottom Lane,
 Bisbrooke, Rutland LE15 9EJ        Source code files on side A    IMAGE   .SRCI
magePrint - printer output enhancer  MACBUGS .SRCMacBugs - meeting demo  ORGANIS
E.SRCDesktop Organise - disc cataloguing system for DES  PLUS8BIT.SRCPatch to en
able CPC Plus 8-bit printer port  SDOS1   .SRCS-DOS v1 - si,255,255,255,255,255,
255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
255          db 0,0,15,252,0,0,1,248,238,231,0,0,0,126,57,220,224,0,0,0,231,119,
29,195,128,0,0,28,0,238,119,29,192,0,0,254,115,184,238,119          db 3,184,0,0
,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,12,7,131,0,1,149,76,0,0  
        db 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
,0,0,0,0,0          db 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
,0,0,0,0,0,mple DOS (co-written by Rob Scott)  SPELL   .SRCPowerSpell - user-fri
endly spell-checker  TAMSIN  .SRCBTL 3 intro - the one with Tamsin the Wonder Ca
t  TEXTREAD.SRCEuroWACCI text reader (see .DOC file)  TOOLKIT .SRCAA Toolkit - c
ollection of RSXs    Source code files on side B, user area 1    PRO-EXT .SRCPro
-Ext v1.5        - main program  EDIT    .SRC      font editor RSXs  GRAPHICS.SR
C      graphic conversion RSXs    COMMS   .SRCCharley's Comms ROM - main program
  BBS     .MOD      bulletin0,0,0,0,0,0          db 0,0,15,252,0,0,1,192,238,255
,0,0,0,112,57,220,224,0,0,0,231,119,253,219,128,0,0,28,15,238,119,253,192,0,0,7,
115,191,238,7          db 63,184,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
,0,0,0,0,0,12,0,3,0,1,170,172,0,0          db 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0          db 0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0          db 0,0,15,255
,0,0,1,192,238,224,0,0,0,112,57,220,224,0,0,0,126,119,1,255,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,1,255,248,0,1,255,252,0,31          db 0,0,1,204,0,0,0,0,0,0,0,0
,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,112,0,0,0          db 0,0,0,0,0
,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,250,252,0,1,128,12,0,0   
       db 128,0,0,96,0,0,1,254,238,0,0,0,0,127,129,220,224,0,0,0,231,112,0,0,0,0
,0,28,0,14,0,1,192,0,0,254,0,0,0,7          db 0,56,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,14,0,1,128,12,0,7          db 0,0,0,0,0,0,0,0,
0,0,0,0,0,0,128,0,0,28,28,238,119,1,192,0,0,7,115,184,14,119          db 115,184
,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,12,6,3,0,1,128,12,0,0
          db 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
,0,0,0,0,0,0          db 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
,0,0,0,0,0,0,0,0,0,0,0,0            *** DATA         Sine motion    .sineer ds 1
44,4  .sinetb dw 1000,1000,1000,1000,992,992,984,976,968,952,944,928,920,904,888
,872          dw 848,832,808,792,768,744,720,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
,0,0,0,112,0,0,0          db 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
,0,0,0,0,0,0,7,0,0,0,127,240,0,0          db 128,0,3,142,0,0,1,192,14,0,0,0,0,11
2,1,192,224,0,0,0,231,0,0,0,0,0,0,28,0,14,0,1,192,0,1,192,0,0,0,0          db 0,
56,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,12,31,131,0,1,149,7
6,0,1          db 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0          db 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,00,696
,672,640,616,592,560,528,504,472,440          dw 408,376,344,304,272,240,208,168
,136,104,64,32,0,0            *** VARI         Miscellaneous    .stage  db 1    
          Letter (1-4)  .togo   db 150            Number of positions to go  .st
38   dw 0              Store for RST 38  1995 CRTC/Systeme D    org &5000  nolis
t  limit &6700            Screen setup            ld  ds 144,4  .sinetb dw 1000,
1000,1000,1000,992,992,984,976,968,952,944,928,920,904,888,872          dw 848,8
32,808,792,768,744,72  $N$$$$$$$$$ nz,newcok  ld hl,text ld a,(hl)  .newcokinc h
l ld (textad),hl  call charad    .scrolcpush hl   ld de,&447F call row   ld de,&
44DF call row  pop hl inc hl ld (fontad),hl  call dscrol  ld a,(textpt) inc a an
d 3  ld (textpt),a ret    --- subrCalculate character address (A - HL)    .chara
dsub 32 ld l,a ld h,0  add hl,hl add hl,hl add hl,hl  add hl,hl add hl,hl add hl
,hl  ld bc,font add hl,bc ret    --- subrPrint 8 rows/1 column on screen    .row
ld bc,&0308  ldi inc cde printer port  SDOS1   .SRCS-DOS v1 - simple DOS (co-wri
tten by Rob Scott)  SPELL   .SRCPowerSpell - user-friendly spell-checker  TAMSIN
  .SRCBTL 3 intro - the one with Tamsin the Wonder Cat  TEXTREAD.SRCEuroWACCI te
xt reader (see .DOC file)  TOOLKIT .SRCAA Toolkit - collection of RSXs  #EDIT   
.SRCPro-Ext v1.5 font editor - BASIC program resources  #GRAPHIC.SRCPro-Ext v1.5
 graphic conversion - BASIC program resources  #PRO-EXT.SRCPro-Ext v1.5 main pro
gram - Protext extensions   number of well-knowc e ld a,ladd bld l,a ld a,dadd c
ld d,a  ldi inc cdec e ld a,ladd bld l,a ld a,dadd cld d,a  ldi inc cdec e ld a,
ladd bld l,a ld a,dadd cld d,a  ldi inc cdec e ld a,ladd bld l,a ld a,dadd cld d
,a  ldi inc cdec e ld a,ladd bld l,a ld a,dadd cld d,a  ldi inc cdec e ld a,ladd
 bld l,a ld a,dadd cld d,a  ldi inc cdec e ld a,ladd bld l,a ld a,dadd cld d,a  
ldi  ld a,ladd bld l,a ret    --- subrScroll all lines    .dscrolld de,&4420 cal
l scrol add a add a8*(row MOD 8) - subrows  ld d,a ld e,0 add hl,de   ret    ***
 ROUTUpdate position    .updateld de,(anic) ld a,(catpic)  .updlpld hl,256 or a 
sbc hl,de jr z,updrs  ld hl,207 or a sbc hl,de jr c,liftu  ld hl,127 or a sbc hl
,de jr c,walkl  ld hl,79  or a sbc hl,de jr c,liftd    .walkrld hl,anixinc (hl) 
inc deld (anic),de inc aand 3     ld (catpic),a ld a,4 ret  .walklld hl,anixdec 
(hl) inc deld (anic),de inc aand 3or 4ld (catpic),a ld r ld de,&4C20 call scrolr
  ld de,&5420 call scrolr ld de,&5C20 call scrolr  ld de,&6420 call scrolr ld de
,&6C20 call scrolr  ld de,&7420 call scrolr ld de,&7C20 call scrolr    ld de,&44
80 call scrolr ld de,&4C80 call scrolr  ld de,&5480 call scrolr ld de,&5C80 call
 scrolr  ld de,&6480 call scrolr ld de,&6C80 call scrolr  ld de,&7480 call scrol
r ld de,&7C80 call scrolr  ret    .scrolrld h,d ld l,e inc hl  ldildildildildild
ildildildildildildildildildildi  ldia,4 ret  .liftdld hl,aniyinc (hl) inc deld (
anic),de ld a,8          ld (catpic),a ld a,1 ret  .liftuld hl,aniydec (hl) inc 
deld (anic),de ld a,8          ld (catpic),a ld a,1 ret  .updrs     ld de,0ld (a
nic),de jr updlp    *** SUBRSprite-display routine  A  height, HL  source, DE  d
estination  puts one blank byte either side    .spriteex de,hl ld (hl),0 inc hl 
ex de,hl  ldildildildildildildildildildildildi  ex de,hl ld (hl),0  ld bc,&7F3 a
dd ldildildildildildildildildildildildildildildi  ldildildildildildildildildildi
ldildildildildildi  ldildildildildildildildildildildildildildildildi  ldildildil
dildildildildildildildildildildildildi  ldildildildildildildildildildildildildil
dildiret      --------------------------- miscellaneous ------------------------
-----    *** SUBRCopy from &C000 screen (HL) to overscan screen (DE)    .cstsrld
 a,8  .cstslld bc,80 ldir hl,bc bit 7,h jr z,sprnoc  ld bc,&C060 add hl,bc  .spr
nocex de,hl dec a jr nz,sprite  ret    *** VARIAnimation variables    .anixdb 0P
osition (0-79)  .aniydb 0Row (0, 1-63, 64)  .anicdw 0Counter (0-287)  .catpicdb 
0Current frame of picture    ------------------------------ scroll -------------
--------------------    *** ROUTScrolling message handler    .scrollld a,(textpt
) or a jr z,new  ld hl,(fontad) jr scrolc    .newld hl,(textad)  ld a,(hl) or a 
jr board commands  CONTROL .MOD      serial interface control  FILE    .MOD     
 file upload/download  LIBRARY .MOD      LBR file manipulation  SIO     .MOD    
  serial input/output  SUBROUT .MOD      common subroutines  TERMINAL.MOD      t
erminal emulator  llection  volume 1    This disc contains Z80 source code for a
 number of well-know  GRAPHICS.SRC      graphic conversion RSXs    COMMS   .SRCC
harley's Comms ROM - main program  BBS     .MOD      bulletin  %N%%%%%%%%% ex de
,hl  ld bc,&07FC add hl,bc bit 6,h jp z,dnext  ld bc,&C060 add hl,bc  .dnextex d
e,hl dec a jp nz,drawlp ret    *** DATAMessage writer text    .mtextdb "....NIIT
S'MSA.T.""  IT'S  TAMSIN  "  db "..TTAHCE..RWEODN"" THE WONDER CAT "  db "GENNIG
OADG.ENDI.""ENGAGED IN DOING"  db "!WSOGNNDIRHOTU.S""WONDROUS THINGS!"  db 0    
*** DATAScrolltext    .textdb "                             GREETINXSSSGGGSS WEL
COME IN THIS DEMO OF TO BY WHEN HOW ZE EQVALIZOR. "  db "           THI.leftxdw 
0Screen address of LH sprite  .rightxdw 0Screen address of RH sprite  .lsprdw fo
nt+&840Content address of LH sprite  .rsprdw font+&880Content address of RH spri
te  .mtposdw mtextPosition in message text  .snposdw sines-1Position in sine tab
le    *** ROUTMessage writer text handler    .mwcalcld hl,(snpos) ld a,(hl)End o
f path  or a jr nz,snexis     ld hl,(mtpos) ld a,(hl)Yes, so get new character  
 or a jr nz,mwnwok    ld hl,mtext  ld bc,&7B0 add hl,bc ex de,hl  ld bc,&7B0 add
 hl,bc ex de,hl  dec a jr nz,cstsl ret    *** SUBRCRTC register set    .crtcld a
,b  ld b,&BC out (c),a  ld b,&BD out (c),c  ret    *** VARIScrolling message    
.textaddw text  .fontaddw 0  .textptdb 0    *** DATAMiscellaneous    .fnamedb "C
ATS    .BIN"  .snamedb "STS     .SCR"  .lnamedb "NEWFONT .BIN"  .mnamedb "OBLADI
  .BIN"    ----------------------------- message writer ------------------------
--    *** DATASine tables      ld a,(hl)     .mwnwokex de,hl call charad ld (lsp
r),hl ex de,hl inc hl ld a,(hl)  ex de,hl call charad ld (rspr),hl ex de,hl inc 
hl ld (mtpos),hl    ld a,&FF ld (bouncx),aReset x position  ld hl,(snpos) inc hl
Start new path  ld a,(hl) or a jr nz,snexit       ld hl,sines jr    snexit     .
snexiscall stage2 ld hl,(snpos)Remove sprites if not last  .snexitld a,(hl) inc 
hl ld (snpos),hlStore position in path and...    *** ROUTMessage writer stage 1 
- drawdb 0  .sinesdb 48,40,32,25,19,13,8,4,2,1,1,2,4,8,13,19,25,32,40,48,40,32,2
5,19,13,8,4,2,1,1,2,4,8,13,19,25,32,40,48,40,32,25,19,13,8,4,2,1,1,2,4,8,13,19,2
5,32,40,48,40,32,25,19,13,8,4,2,1,1,2,4,8,13,19,25,32,40,48,0  db 48,39,31,24,17
,11,7,3,1,1,1,3,7,11,17,24,31,39,48,39,31,24,17,11,7,3,1,1,1,3,7,11,17,24,31,39,
48,39,31,24,17,11,7,3,1,1,1,3,7,11,17,24,31,39,48,39,31,24,17,11,7,3,1,1,1,3,7,1
1,17,24,31,39,48,0  db 48,39,31,23,16,10,5,2,1,1,2,5,10,16,23,31,39,48,39,31,23,
16,10,5,2,1,1,2,5,10,16,23,31,39,4 sprites    .stage1call scraddCalculate base a
ddress  ld bc,&80 add hl,bc   push hl...for the left-hand sprite   ld a,(bouncx)
 inc a    ld (bouncx),a ld e,a ld d,0    add hl,de ld (leftx),hl   pop hl ld bc,
92...and the right-hand one  add hl,bc or a   sbc hl,de ld (rightx),hl     ld hl
,(leftx ) ld de,sprst1 call saveStore current screen contents  ld hl,(rightx) ld
 de,sprst2 call save   ld de,(leftx ) ld hl,(lspr) call drawDraw new s8,39,31,23
,16,10,5,2,1,1,2,5,10,16,23,31,39,48,39,31,23,16,10,5,2,1,1,2,5,10,16,23,31,39,4
8,0  db 48,38,30,21,14,8,4,1,1,1,4,8,14,21,30,38,48,38,30,21,14,8,4,1,1,1,4,8,14
,21,30,38,48,38,30,21,14,8,4,1,1,1,4,8,14,21,30,38,48,38,30,21,14,8,4,1,1,1,4,8,
14,21,30,38,48,0  db 48,38,28,20,13,7,3,1,1,3,7,13,20,28,38,48,38,28,20,13,7,3,1
,1,3,7,13,20,28,38,48,38,28,20,13,7,3,1,1,3,7,13,20,28,38,48,38,28,20,13,7,3,1,1
,3,7,13,20,28,38,48,0  db 48,37,27,18,11,5,2,1,2,5,11,18,27,37,48,37,27,18,11,5,
2,1,2,5,11,18,27,37prite  ld de,(rightx) ld hl,(rspr) call draw   ret    *** ROU
TMessage writer stage 2 - remove sprites    .stage2ld de,(rightx) ld hl,sprst2 c
all draw  ld de,(leftx ) ld hl,sprst1 call draw  ret    *** SUBRStore sprite fro
m HL (screen) in DE (data)    .saveld a,16  .savelpldildildildi  ld bc,&07FC add
 hl,bc bit 6,h jp z,snext  ld bc,&C060 add hl,bc  .snextdec a jp nz,savelp ret  
  *** SUBRDraw sprite from HL (data) at DE (screen)    .drawld a,16  .drawlpldil
dildildi,48,37,27,18,11,5,2,1,2,5,11,18,27,37,48,37,27,18,11,5,2,1,2,5,11,18,27,
37,48,0  db 48,36,26,16,9,4,1,1,4,9,16,26,36,48,36,26,16,9,4,1,1,4,9,16,26,36,48
,36,26,16,9,4,1,1,4,9,16,26,36,48,36,26,16,9,4,1,1,4,9,16,26,36,48,0  db 48,35,2
4,14,7,2,1,2,7,14,24,35,48,35,24,14,7,2,1,2,7,14,24,35,48,35,24,14,7,2,1,2,7,14,
24,35,48,35,24,14,7,2,1,2,7,14,24,35,48,0  db 0    *** VARIMessage writer variab
les    .sprst1ds 64Don't wipe background  .sprst2ds 64     .bouncxdb &FFCurrent 
X position    &N&&&&&&&&&MPLETE HIS NOVEL "  db "ENTITLED 1001 THINGS TO DO WITH
 YOUR GERBIL DROPPINGS.              "    db "NOW YOU HAVE BEEN OFFICIALLY WELCO
MED INTO THIS DEMO, SO YOU WILL NOW "  db "BE UNOFFICIALLY WELCOMED INTO THIS DE
MO, SO HERE GOES       WELCOME IN "  db "OUR WONDERFUL WORLD OF DEMO. SO WELCOME
 AGAIN, CATERING IS BY EWARWOOWOO "  db "CATERING CORPORATION AND ONLY CONSISTS 
OF CRISPS WHICH SMELL (AND "  db "TASTE) LIKE UNWASHED GENITALIA.  THIS DEMO IS 
DEDICATED TO TAMSIN THE "  db "WONDROUS CAT.    NOW IT IZ DA CREDITZ IN WHICH FO
R WHO WE ARE YOU WELCOMING "  db "YES PLEASE MATRON.      HIGH-FREQUENCY SOUNDS 
THANX TO TOM DEAN OF SQUEAKY "  db "SYSTEM!    RADIKAL GFXZXZZZX BY GONORRHOEA O
F SYPHILIS. ALSO GFXZZXZXXZQ "  db "IS SCORING 517 POINTS AT SCRABBLE IF YOU GET
 IT ON A TRIPLE-WOR"  list  db 0   the Wonder Cat    org &8000  write "disc.bin"
  nolist    Demo short, RISPS WHICH SMELL (AND "  db "TASTE) LIKE UNWASHED GENIT
ALIA.  THIS DEMO IS DEDICATED TO TAMSIN THE "  db "WONDROUS CAT.    NOS IS DA FU
CKIN SZENE MOB STS WITH DA LATEST WAREZ FROM ZE SZENE. "  db "ALL CODING BY CROW
N OF STS. GRAFIX BY KNUUUUTSCHFLECK OF IFW "  db "(INCOMPETENT FUCKWITS). MUSIXX
 BY KANGAROO OF ARSEBANDIT PRODUCTIONS "  db "GMBH. JOBBING INTO A WALL IN MONAC
O BY MICHAEL SCHUMACHER. FRIDGE "  db "MAGNET. GREETING FROM NIPPLE CLAMP OF STS
. HI THERE, WELCOME IN THIS "  db "DEMO, IN WHICH I AM WELCOMING YOU IN. AGAIN. 
THIS IS NIPPLE CLAMP "  db "SPEAKING, OR RATHER, WRITING HA! HA! IN THIS DEMO IN
 WHICH YOU ARE "  db "BEING WELCOMED. GREETINXS TO THE EUROPEAN MEMBERS OF STS. 
THESE ARE "  db "THE MEN WHOM I AM NOW WELCOMING. BEARDED CLAM - NICE TINBABULAT
ION IN "  db "YOUR CLITORIS DEMO. CHEESY HELMET FLAKES - LOOK FORWARD TO SEEING 
"  db "YOUR LATEST UTILITY, CHEESE CLONER. PISSFLAPS - GREAT PERSISTINATION "  d
b "MATE, KEEP UP THE FRYING PAN.   GALLOPING NOB ROT - NICE SALSA IN YOUR "  db 
"PRETZELS! WE ALSO HAVE VALUABLE INPUT FROM EWARWOOWOO WHOSE ONLY "  db "PURPOSE
 IN HIS VERY SAD, DARK EXISTENCE IS TO CO  'N'''''''''  (N(I(E(A(F(B(G(C(H(D"1I!
IQ (  N#IF##n#f#zQz    Iy1!I0! "!Df!!Xf!JfI  ( YQN#IF##n#f#z   (22z2U"y!!m!   2!
m!!m!n(!!4m!!m!n(!m!! !nfutfwtw
Tous droits réservés. Reproduction sans autorisation interdite. © Kukulcan