Michaelangel007 / apple2_dos33

Apple ][ DOS 3.3
17 stars 3 forks source link

DOS versions: DOS3.3, DOS3.3B, DOS3.3C. "What version do I have?" #8

Open TommyGH opened 6 years ago

TommyGH commented 6 years ago

In the README.md for Michaelangel007/apple2_dos33:

"Versions There are at least 3 versions of DOS 3.3 . v1980 August 1980 . v1983 January 1983 . v1984 Copy II v5.0"

I've checked the loaded code, and "v1984 Copy II v5.0" does NOT have the patched code found in DOS3.3C PDF from Apple (July 1983). I have not checked to see how it might be different from the various DOS3.3 versions.

I think the most correct labelling is:

DOS3.3 1980 August DOS3.3B 1983 January DOS3.3C 1983 July

See also:

https://github.com/cmosher01/Apple-II-System-Masters

In particular, look at the dos332 (he labels the versions as dos330, dos331, dos332). The "original332sysmas.nib" as found there does indeed have the newest patch code as documented in DOS3.3C PDF from Apple.

In apple2_dos33, at 3683: you have 2 JMP instructions: JMP FIXIT2; JMP FIXIT3. The comment on the second line seems to indicate some confusion on your part. In addition your comment near FIXIT2 seems wrong: "It was relocated to $3A84..." And also your "DOS 3.3D PATCH" at FIXIT3 is not correct, as this patch is part of DOS3.3C. Let me try to help.

In DOS3.3 (1980) at $3683 is a JMP RWP3, where RWP3 is at $2546 (not in patch area).

In DOS3.3B (January), at $3683 is JMP FIXIT3 which is at $3A84. (Note, your name FIXIT3 should probably be called FIXIT1, since this code precedes the creation of the FIXIT2 code in July).

In DOS3.3C (July/Aug), at $3683 is JMP FIXIT2 which is at $36B3.

What happened in July 1983 is that 6 lines of code were removed from 3A84, they were increased to 10 lines, and "moved" to 36B3. In your documentation, you should have the FIXIT2 code turned on, and the FIXIT3 (FIXIT1?) code turned off.

It seems to me you are using a DOS3.3B disk image and documenting it with the DOS3.3C PDF listing from Apple.

TommyGH commented 6 years ago

The two sections of different code for FIXIT2 are documented in the Apple PDF. See TEMPY file, where FIXIT2 is 6 instructions. See BOOTLDR file, where FIXIT2 is 10 instructions.

You might also note that the code OFF80 was moved from file TEMPY to file MSWAITR. It too was changed between DOS3.3B (1983 January) to DOS3.3C (1983 July).

Michaelangel007 commented 6 years ago

@TommyGH

Do you have an .DSK image of DOS3.3C (August)?

I don't see it on Asimov -- although I didn't spend much time looking.

TommyGH commented 6 years ago

I'm not sure if there ever was an "official" release of DOS3.3C by Apple to the general public. I know I read somewhere (perhaps following the link below), that around August 1983 that Apple did send out disk images to software developers to start using for their products, and that they were "required" to start using the new version by November 1983.

https://github.com/cmosher01/Apple-II-System-Masters

The initial Readme at Apple-II-System-Masters explains the various versions of disks that he has and how he created them. The DOS3.3C disks are found here:

https://github.com/cmosher01/Apple-II-System-Masters/tree/master/dos332

And the readme at "/dos332" also explains more about the various images.

He started with the following image, and this is the one I have been using as my DOS3.3C:

https://github.com/cmosher01/Apple-II-System-Masters/blob/master/dos332/original332sysmas.nib

The "Hello" program says it came from "NIBBLE 47 1986".

Hope this helps.

Michaelangel007 commented 6 years ago

OK, that helps.

So his 3.3C is a "remastered" version.

I guess I should probably run the DOS.TO.DISK script on page 28 and verify it creates the same version.

MONCIO
CALL-151
BLOAD DOS33C.OBJ
6B00<3600.36FFM
6C00<1F00.1FFFM
6D00<1E00.1EFFM
6E00<1D00.1DFFM
6F00<1C00.1CFFM
7000<1B00.1BFFM
7100<3F00.3FFFM
7200<3E00.3EFFM
7300<3D00.3DFFM
7400<3C00.3CFFM
7500<3B00.3BFFM
7600<3A00.3AFFM
7700<3900.39FFM
7800<3800.38FFM
7900<3700.37FFM
7A00<2000.20FFM
7B00<2100.21FFM
7C00<2F00.2FFFM
7D00<2E00.2EFFM
7E00<2D00.2DFFM
7F00<2C00.2CFFM
8000<2B00.2BFFM
8100<2A00.2AFFM
8200<2900.29FFM
8300<2800.28FFM
8400<2700.27FFM
8500<2600.26FFM
8600<2500.25FFM
8700<2400.24FFM
8800<2300.23FFM
8900<2200.22FFM
8A00<3000.30FFM
8B00<3100.31FFM
8C00:0
8C01<8C00.8CFFM
8D00<3500.35FFM
8E00<3400.34FFM
8F00<3300.33FFM
9000<3200.32FFM
9100:0
9101<9000.91FFM
280:AD 0 C0 10 FB 2C 10 C0 60 A9 60 4C ED FD
3D0G
BLOADBLOCKIO
PRINT"INSERT A BLANK DISK IN DRIVE 1":PRINT"AND PRESS 'RETURN' ";:CALL649
CALL640
LOADHELLO,D2
INITHELLO,D1
CALL-151
300G
0<6B00.8CFF<Ctrl-Y>W
15<8C00.91FF<Ctrl-Y>W
3D0G
PRINT"DOS 3.3C NOW ON DISK"
Michaelangel007 commented 6 years ago

Now to figure out what address BLOCKIO (page 7) loads at ... I'm assuming $300 based on 300G from above script ?

File: BLOCKIO Range: 0300.3CC Save: BSAVE BLOCKIO,A$300,L$CD

0300:A9 4C 8D F8 03 A9 11 8D F9 03 A9 03 8D FA 03 D0
0310:2B AD E9 B7 8D B9 03 8D C7 03 AD EA B7 8D BA 03
0320:8D C8 03 A2 00 BD 00 02 C9 99 F0 03 E8 D0 F6 BD
0330:01 02 A0 02 C9 D7 F0 08 C9 D2 F0 03 4C 65 FF 88
0340:8C C4 03 A5 3C 8D C0 03 A5 3D 8D C1 03 A5 3E 85
0350:0E A5 3F 85 0F A5 42 0A 29 0F A8 88 8C A7 03 46
0360:43 66 42 66 42 66 42 A5 42 29 3F 8D BC 03 AC A7
0370:03 C8 C0 10 D0 05 EE BC 03 A0 00 B9 A8 03 8D BD
0380:03 8C A7 03 A9 03 A0 B8 20 D9 03 90 06 20 2D FF
0390:4C 69 FF E6 3D EE C1 03 AD C0 03 C5 0E AD C1 03
03A0:E5 0F 90 CA 4C 69 FF A0 00 0E 0D 0C 0B 0A 09 08
03B0:07 06 05 04 03 02 01 0F 01 A0 A0 00 E0 A0 C9 03
03C0:E8 D2 A0 A0 F7 A0 A9 9E BD 00 01 EF D8       

Sector Interleave $3A8

db 3A8:3B7

Disassembly: (WIP)

                USRADR EQU $03F8 ; Ctrl-Y Vector
                IBSLOT EQU $B7E9 ; DOS 3.3
                IBDRVN EQU $B7EA ; DOS 3.3

                MAIN
0300:A9 4C                LDA #$4C      ; "JMP" opcode
0302:8D F8 03             STA USRADR    ; Ctrl-Y vector
0305:A9 11                LDA #$11      ; $311
0307:8D F9 03             STA USRADR+1   
030A:A9 03                LDA #$03       
030C:8D FA 03             STA USRADR+2      
030F:D0 2B                BNE $33C      ;
0311:AD E9 B7             LDA IBSLOT    ;B7E9:60 `
0314:8D B9 03             STA $03B9     ;03B9:A0  
0317:8D C7 03             STA $03C7     ;03C7:9E ^
031A:AD EA B7             LDA IBDRVN    ;B7EA:01 A
031D:8D BA 03             STA $03BA     ;03BA:A0  
0320:8D C8 03             STA $03C8     ;03C8:BD =
0323:A2 00                LDX #$00
0325:BD 00 02             LDA INPUT.BUFFER,X
0328:C9 99                CMP #$99      ;Ctrl-Y   
032A:F0 03                BEQ $32F                
032C:E8                   INX                     
032D:D0 F6                BNE $325                
032F:BD 01 02             LDA INPUT.BUFFER+1,X
0332:A0 02                LDY #$02
0334:C9 D7                CMP #$D7      ;        W
0336:F0 08                BEQ $340                
0338:C9 D2                CMP #$D2      ;        R
033A:F0 03                BEQ $33F                
033C:4C 65 FF             JMP MON                 
033F:88                   DEY                     
0340:8C C4 03             STY $03C4     ;03C4:F7 w
0343:A5 3C                LDA MON.A1L   ;003C:00 @
0345:8D C0 03             STA $03C0     ;03C0:E8 h
0348:A5 3D                LDA MON.A1H   ;003D:03 C
034A:8D C1 03             STA $03C1     ;03C1:D2 R
034D:A5 3E                LDA MON.A2L   ;003E:00 @
034F:85 0E                STA ENDCHR    ;000E:00 @
0351:A5 3F                LDA MON.A2H   ;003F:00 @
0353:85 0F                STA TKN.CNTR  ;000F:6B k
0355:A5 42                LDA A4L       ;0042:42 B
0357:0A                   ASL           ;         
0358:29 0F                AND #$0F      ;        O
035A:A8                   TAY           ;         
035B:88                   DEY           ;         
035C:8C A7 03             STY B_03A7    ;03A7:A0  
035F:46 43                LSR A4H       ;
0361:66 42                ROR A4L       ;
0363:66 42                ROR A4L       ;
0365:66 42                ROR A4L       ;
0367:A5 42                LDA A4L       ;
0369:29 3F                AND #$3F      ;        ?
036B:8D BC 03             STA $03BC     ;03BC:E0 `
036E:AC A7 03             LDY B_03A7    ;03A7:A0  
0371:C8                   INY           ;         
0372:C0 10                CPY #$10      ;        P
0374:D0 05                BNE $37B      ;         
0376:EE BC 03             INC $03BC     ;03BC:E0 `
0379:A0 00                LDY #$00      ;        @
037B:B9 A8 03             LDA B_03A8,Y  ;03A9:0E N
037E:8D BD 03             STA $03BD     ;03BD:A0  
0381:8C A7 03             STY B_03A7    ;03A7:A0  
0384:A9 03                LDA #$03      ;        C
0386:A0 B8                LDY #$B8      ;        8
0388:20 D9 03             JSR $03D9     ;         
038B:90 06                BCC $393                
038D:20 2D FF             JSR PRERR               
0390:4C 69 FF             JMP MONZ                
0393:E6 3D                INC MON.A1H   ;003D:03 C
0395:EE C1 03             INC $03C1     ;03C1:D2 R
0398:AD C0 03             LDA $03C0     ;03C0:E8 h
039B:C5 0E                CMP ENDCHR    ;000E:00 @
039D:AD C1 03             LDA $03C1     ;03C1:D2 R
03A0:E5 0F                SBC TKN.CNTR  ;000F:6B k
03A2:90 CA                BCC $36E                
03A4:4C 69 FF             JMP MONZ      ;Wastes 1 bytes: BCS $33C

03A7:A0       B_03A7      db #$A0                 
03A8:00       B_03A8      db #$00                 
03A9:0E                   db #$0E                 
03AA:0D                   db #$0D                 
03AB:0C                   db #$0C                 
03AC:0B                   db #$0B                 
03AD:0A                   db #$0A                 
03AE:09                   db #$09                 
03AF:08                   db #$08                 
03B0:07                   db #$07                 
03B1:06                   db #$06                 
03B2:05                   db #$05                 
03B3:04                   db #$04                 
03B4:03                   db #$03                 
03B5:02                   db #$02                 
03B6:01                   db #$01                 
03B7:0F                   db #$0F                 
03B8:01       B_03B8      db #$01                 
03B9:A0                   db #$A0                 
03BA:A0                   db #$A0                 
03BB:00                   db #$00                 
03BC:E0                   db #$E0                 
03BD:A0                   db #$A0                 
03BE:C9                   db #$C9                 
03BF:03                   db #$03                 
03C0:E8                   db #$E8                 
03C1:D2                   db #$D2                 
03C2:A0                   db #$A0                 
03C3:A0                   db #$A0                 
03C4:F7                   db #$F7                 
03C5:A0                   db #$A0                 
03C6:A9                   db #$A9                 
03C7:9E                   db #$9E                 
03C8:BD                   db #$BD                 
03C9:00                   db #$00                 
03CA:01                   db #$01                 
03CB:EF                   db #$EF                 
03CC:D8                   db #$D8                 
Michaelangel007 commented 6 years ago

File: DOS33C.OBJ Range: 1B00.3FFF Save: BSAVE DOS33C.OBJ,A$1B00,L$2500

1B00:4C 84 1D A9 BF 85 41 A2
1B08:00 86 40 A0 00 A1 40 85
1B10:26 98 45 26 85 26 98 41
1B18:40 81 40 C5 26 D0 05 C8
1B20:D0 EF F0 04 C6 41 D0 E3
1B28:A5 41 29 DF 85 43 86 42
1B30:A1 42 48 85 26 98 45 26
1B38:85 26 98 41 40 81 42 C5
1B40:26 D0 09 C8 D0 EF A4 43
1B48:68 4C 51 1B 68 81 42 A4
1B50:41 C8 8C 7D 1C 38 98 ED
1B58:7E 1C 8D 7C 1C 38 ED 7A
1B60:1C F0 9D 8D 7F 1C AD 7A
1B68:1C 8D 0D 1D A9 1D 8D 49
1B70:37 A9 84 8D 48 37 A2 00
1B78:86 40 BD 29 1C A8 BD 2A
1B80:1C 85 41 4C 93 1B 18 B1
1B88:40 6D 7F 1C 91 40 C8 D0
1B90:02 E6 41 C8 D0 02 E6 41
1B98:A5 41 DD 2C 1C 90 E7 98
1BA0:DD 2B 1C 90 E1 8A 18 69
1BA8:04 AA EC 28 1C 90 CB A2
1BB0:00 8E 9C 33 BD 5A 1C 85
1BB8:40 BD 5B 1C 85 41 A2 00
1BC0:A1 40 20 8E F8 A4 2F C0
1BC8:02 D0 11 B1 40 CD 7A 1C
1BD0:90 0A CD 7B 1C B0 05 6D
1BD8:7F 1C 91 40 38 A5 2F 65
1BE0:40 85 40 A9 00 65 41 85
1BE8:41 AE 9C 33 DD 5D 1C 90
1BF0:CD A5 40 DD 5C 1C 90 C6
1BF8:8A 18 69 04 AA EC 59 1C
1C00:90 AF A9 3F 85 41 AC 7D
1C08:1C 88 84 43 A9 00 85 40
1C10:85 42 A8 B1 40 91 42 C8
1C18:D0 F9 CE 80 1C F0 06 C6
1C20:41 C6 43 D0 EE 4C 54 1E
1C28:24 00 1D 56 1D 58 1D 5A
1C30:1D 64 1D 66 1D 6C 1D 70
1C38:1D 78 1D 7C 1D 7E 1D 80
1C40:1D C1 2A FD 2A E4 37 E8
1C48:37 EE 37 F0 37 00 00 00
1C50:00 00 00 00 00 00 00 00
1C58:00 20 84 1D 84 28 FD 2A
1C60:97 33 5D 36 E0 37 56 3C
1C68:DF 3C 00 38 11 3A 69 3A
1C70:84 3A 00 3D A8 3F C8 3F
1C78:FF 3F 1D 40 00 00 23 00
1C80:23 FC FC FC FC FC FC FD
1C88:FC FC FF FC FD FC FC FF
1C90:FF FC FE FD FE FD FD FE
1C98:FF FC FE FF FD FE FF FD
1CA0:FC FD FD FC FD FE FD FF
1CA8:FC FE FC FC FC FC FC FC
1CB0:FD FC FC FE FC FD FC FC
1CB8:FF FC FC FE FD FC FD FF
1CC0:FC FF FD FE FF FD FF FC
1CC8:FC FD FE FF FF FF FC FC
1CD0:FF FF FC FE FD FC FD FD
1CD8:FE FF FD FE FF FC FE FE
1CE0:FC FD FC FD FE FD FD FC
1CE8:FD FC FF FD FC FF FC FC
1CF0:FE FD FC FC FD FC FE FC
1CF8:FC FD FF FC FC FD FC FC
1D00:D3 1C 81 1E BD 1E 75 2A
1D08:93 2A 60 2A 00 1B BB 35
1D10:EA 1E 11 1F 22 1F 2E 1F
1D18:51 1F 60 1F 70 1F 4E 25
1D20:12 24 96 23 D0 24 EF 24
1D28:62 22 70 22 74 22 E9 22
1D30:1A 25 C5 25 0F 25 DC 25
1D38:A2 22 97 22 80 22 6D 25
1D40:32 22 3C 22 28 22 2D 22
1D48:50 22 79 25 9D 25 30 23
1D50:5C 23 8D 23 7C 22 36 E8
1D58:E5 24 E3 E3 00 E0 03 E0
1D60:00 00 36 E8 E5 24 E3 E3
1D68:00 E0 03 E0 FC 24 FC 24
1D70:65 D8 00 E0 3C D4 F2 D4
1D78:06 25 06 25 67 10 84 1D
1D80:3C 0C F2 0C AD E9 37 4A
1D88:4A 4A 4A 8D 6A 2A AD EA
1D90:37 8D 68 2A AD 00 E0 49
1D98:20 D0 11 8D B6 2A A2 0A
1DA0:BD 61 1D 9D 55 1D CA D0
1DA8:F7 4C BC 1D A9 40 8D B6
1DB0:2A A2 0C BD 6B 1D 9D 55
1DB8:1D CA D0 F7 38 B0 12 AD
1DC0:B6 2A D0 04 A9 20 D0 05
1DC8:0A 10 05 A9 4C 20 B2 25
1DD0:18 08 20 51 28 A9 00 8D
1DD8:5E 2A 8D 52 2A 28 6A 8D
1DE0:51 2A 30 03 6C 5E 1D 6C
1DE8:5C 1D 0A 10 19 8D B6 2A
1DF0:A2 0C BD 77 1D 9D 55 1D
1DF8:CA D0 F7 A2 1D BD 93 2A
1E00:9D 75 2A CA 10 F7 AD B1
1E08:2A 8D 57 2A 20 D4 27 AD
1E10:B3 2A F0 09 48 20 9D 26
1E18:68 A0 00 91 40 20 5B 27
1E20:AD 5F 2A D0 20 A2 2F BD
1E28:51 1E 9D D0 03 CA 10 F7
1E30:AD 53 1E 8D F3 03 49 A5
1E38:8D F4 03 AD 52 1E 8D F2
1E40:03 A9 06 D0 05 AD 62 2A
1E48:F0 06 8D 5F 2A 4C 80 21
1E50:60 4C BF 1D 4C 84 1D 4C
1E58:FD 2A 4C B5 37 AD 0F 1D
1E60:AC 0E 1D 60 AD C2 2A AC
1E68:C1 2A 60 4C 51 28 EA EA
1E70:4C 59 FA 4C 65 FF 4C 58
1E78:FF 4C 65 FF 4C 65 FF 65
1E80:FF 20 D1 1E AD 51 2A F0
1E88:15 48 AD 5C 2A 91 28 68
1E90:30 03 4C 26 26 20 EA 1D
1E98:A4 24 A9 60 91 28 AD B3
1EA0:2A F0 03 20 82 26 A9 03
1EA8:8D 52 2A 20 BA 1F 20 BA
1EB0:1E 8D 5C 2A 8E 5A 2A 4C
1EB8:B3 1F 6C 38 00 20 D1 1E
1EC0:AD 52 2A 0A AA BD 11 1D
1EC8:48 BD 10 1D 48 AD 5C 2A
1ED0:60 8D 5C 2A 8E 5A 2A 8C
1ED8:5B 2A BA E8 E8 8E 59 2A
1EE0:A2 03 BD 53 2A 95 36 CA
1EE8:10 F8 60 AE B7 2A F0 03
1EF0:4C 78 1F AE 51 2A F0 08
1EF8:C9 BF F0 75 C5 33 F0 27
1F00:A2 02 8E 52 2A CD B2 2A
1F08:D0 19 CA 8E 52 2A CA 8E
1F10:5D 2A AE 5D 2A 9D 00 02
1F18:E8 8E 5D 2A C9 8D D0 75
1F20:4C CD 1F C9 8D D0 7D A2
1F28:00 8E 52 2A 4C A4 1F A2
1F30:00 8E 52 2A C9 8D F0 07
1F38:AD B3 2A F0 67 D0 5E 48
1F40:38 AD B3 2A D0 03 20 5E
1F48:26 68 90 EC AE 5A 2A 4C
1F50:15 1F C9 8D D0 05 A9 05
1F58:8D 52 2A 20 0E 26 4C 99
1F60:1F CD B2 2A F0 85 C9 8A
1F68:F0 F1 A2 04 8E 52 2A D0
1F70:E1 A9 00 8D 52 2A F0 25
1F78:A9 00 8D B7 2A 20 51 28
1F80:4C DC 24 AD 00 02 CD B2
1F88:2A F0 0A A9 8D 8D 00 02
1F90:A2 00 8E 5A 2A A9 40 D0
1F98:06 A9 10 D0 02 A9 20 2D
1FA0:5E 2A F0 0F 20 BA 1F 20
1FA8:C5 1F 8D 5C 2A 8C 5B 2A
1FB0:8E 5A 2A 20 51 28 AE 59
1FB8:2A 9A AD 5C 2A AC 5B 2A
1FC0:AE 5A 2A 38 60 6C 36 00
1FC8:A9 8D 4C C5 1F A0 FF 8C
1FD0:5F 2A C8 8C 62 2A EE 5F
1FD8:2A A2 00 08 BD 00 02 CD
1FE0:B2 2A D0 01 E8 8E 5D 2A
1FE8:20 A4 21 29 7F 59 84 28
1FF0:C8 0A F0 02 68 08 90 F0
1FF8:28 F0 20 B9 84 28 D0 D6
2000:AD 00 02 CD B2 2A F0 03
2008:4C A4 1F AD 01 02 C9 8D
2010:D0 06 20 5B 27 4C 95 1F
2018:4C C4 26 0E 5F 2A AC 5F
2020:2A 20 5E 26 90 0C A9 02
2028:39 09 29 F0 05 A9 0F 4C
2030:D2 26 C0 06 D0 02 84 33
2038:A9 20 39 09 29 F0 61 20
2040:95 20 08 20 A4 21 F0 1E
2048:0A 90 05 30 03 4C 00 20
2050:6A 4C 59 20 20 93 21 F0
2058:0D 99 75 2A C8 C0 3C 90
2060:F3 20 93 21 D0 FB 28 D0
2068:0F AC 5F 2A A9 10 39 09
2070:29 F0 0C A0 1E 08 D0 CB
2078:AD 93 2A C9 A0 F0 13 AD
2080:75 2A C9 A0 D0 4B AC 5F
2088:2A A9 C0 39 09 29 F0 02
2090:10 3F 4C 00 20 A0 3C A9
2098:A0 99 74 2A 88 D0 FA 60
20A0:8D 75 2A A9 0C 39 09 29
20A8:F0 27 20 B9 21 B0 1F A8
20B0:D0 17 E0 11 B0 13 AC 5F
20B8:2A A9 08 39 09 29 F0 06
20C0:E0 08 B0 CE 90 0B 8A D0
20C8:08 A9 02 4C D2 26 4C C4
20D0:26 A9 00 8D 65 2A 8D 74
20D8:2A 8D 66 2A 8D 6C 2A 8D
20E0:6D 2A 20 DC 3F AD 5D 2A
20E8:20 A4 21 D0 1F C9 8D D0
20F0:F7 AE 5F 2A AD 65 2A 1D
20F8:0A 29 5D 0A 29 D0 93 AE
2100:63 2A F0 76 8D 63 2A 8E
2108:5D 2A D0 DC A2 0A DD 40
2110:29 F0 05 CA D0 F8 F0 B6
2118:BD 4A 29 30 47 0D 65 2A
2120:8D 65 2A CA 8E 64 2A 20
2128:B9 21 B0 A2 AD 64 2A 0A
2130:0A A8 A5 45 D0 09 A5 44
2138:D9 55 29 90 8C A5 45 D9
2140:58 29 90 0B D0 83 A5 44
2148:D9 57 29 90 02 D0 F5 AD
2150:63 2A D0 94 98 4A A8 A5
2158:45 99 67 2A A5 44 99 66
2160:2A 4C E8 20 48 A9 80 0D
2168:65 2A 8D 65 2A 68 29 7F
2170:0D 74 2A 8D 74 2A D0 E9
2178:F0 9C 20 80 21 4C 83 1F
2180:20 5B 27 20 AE 21 AD 5F
2188:2A AA BD 1F 1D 48 BD 1E
2190:1D 48 60 AE 5D 2A BD 00
2198:02 C9 8D F0 06 E8 8E 5D
21A0:2A C9 AC 60 20 93 21 F0
21A8:FA C9 A0 F0 F7 60 A9 00
21B0:A0 16 99 BA 35 88 D0 FA
21B8:60 A9 00 85 44 85 45 20
21C0:A4 21 08 C9 A4 F0 3C 28
21C8:4C CE 21 20 A4 21 D0 06
21D0:A6 44 A5 45 18 60 38 E9
21D8:B0 30 21 C9 0A B0 1D 20
21E0:FE 21 65 44 AA A9 00 65
21E8:45 A8 20 FE 21 20 FE 21
21F0:8A 65 44 85 44 98 65 45
21F8:85 45 90 CF 38 60 06 44
2200:26 45 60 28 20 A4 21 F0
2208:C5 38 E9 B0 30 EE C9 0A
2210:90 08 E9 07 30 E6 C9 10
2218:B0 E2 A2 04 20 FE 21 CA
2220:D0 FA 05 44 85 44 4C 04
2228:22 A5 44 4C 95 FE A5 44
2230:4C 8B FE AD 5E 2A 0D 74
2238:2A 8D 5E 2A 60 2C 74 2A
2240:50 03 20 C8 1F A9 70 4D
2248:74 2A 2D 5E 2A 8D 5E 2A
2250:60 A9 00 8D B3 2A A5 44
2258:48 20 16 23 68 8D 57 2A
2260:4C D4 27 A9 05 20 AA 22
2268:20 64 27 A0 00 98 91 40
2270:60 A9 07 D0 02 A9 08 20
2278:AA 22 4C EA 22 A9 0C D0
2280:F6 AD 08 1D 8D BD 35 AD
2288:09 1D 8D BE 35 A9 09 8D
2290:63 2A 20 C8 22 4C EA 22
2298:20 A3 22 20 8C 26 D0 FB
22A0:4C 71 36 A9 00 4C D5 23
22A8:A9 01 8D 63 2A AD 6C 2A
22B0:D0 0A AD 6D 2A D0 05 A9
22B8:01 8D 6C 2A AD 6C 2A 8D
22C0:BD 35 AD 6D 2A 8D BE 35
22C8:20 EA 22 A5 45 D0 03 4C
22D0:C8 26 85 41 A5 44 85 40
22D8:20 43 27 20 4E 27 20 1A
22E0:27 AD 63 2A 8D BB 35 4C
22E8:A8 26 AD 75 2A C9 A0 F0
22F0:25 20 64 27 B0 3A 20 FC
22F8:22 4C EA 22 20 AF 27 D0
2300:05 A9 00 8D B3 2A A0 00
2308:98 91 40 20 4E 27 A9 02
2310:8D BB 35 4C A8 26 20 92
2318:27 D0 05 20 9A 27 F0 10
2320:20 AF 27 F0 F6 20 AA 27
2328:F0 F1 20 FC 22 4C 16 23
2330:60 A9 09 2D 65 2A C9 09
2338:F0 03 4C 00 20 A9 04 20
2340:D5 23 AD 73 2A AC 72 2A
2348:20 E0 23 AD 6D 2A AC 6C
2350:2A 20 E0 23 AD 73 2A AC
2358:72 2A 4C FF 23 20 A8 22
2360:A9 7F 2D C2 35 C9 04 F0
2368:03 4C D0 26 A9 04 20 D5
2370:23 20 7A 24 AA AD 65 2A
2378:29 01 D0 06 8E 72 2A 8C
2380:73 2A 20 7A 24 AE 72 2A
2388:AC 73 2A 4C 71 24 20 5D
2390:23 20 51 28 6C 72 2A AD
2398:B6 2A F0 20 A5 D6 10 03
23A0:4C CC 26 A9 02 20 D5 23
23A8:38 A5 AF E5 67 A8 A5 B0
23B0:E5 68 20 E0 23 A5 68 A4
23B8:67 4C FF 23 A9 01 20 D5
23C0:23 38 A5 4C E5 CA A8 A5
23C8:4D E5 CB 20 E0 23 A5 CB
23D0:A4 CA 4C FF 23 8D C2 35
23D8:48 20 A8 22 68 4C C4 27
23E0:8C C1 35 8C C3 35 8D C2
23E8:35 A9 04 8D BB 35 A9 01
23F0:8D BC 35 20 A8 26 AD C2
23F8:35 8D C3 35 4C A8 26 8C
2400:C3 35 8D C4 35 A9 02 4C
2408:86 36 20 A8 26 4C EA 22
2410:4C D0 26 20 16 23 20 A8
2418:22 A9 23 2D C2 35 F0 F0
2420:8D C2 35 AD B6 2A F0 28
2428:A9 02 20 B1 24 20 7A 24
2430:18 65 67 AA 98 65 68 C5
2438:74 B0 70 85 B0 85 6A 86
2440:AF 86 69 A6 67 A4 68 20
2448:71 24 20 51 28 6C 60 1D
2450:A9 01 20 B1 24 20 7A 24
2458:38 A5 4C ED 60 2A AA A5
2460:4D ED 61 2A 90 45 A8 C4
2468:4B 90 40 F0 3E 84 CB 86
2470:CA 8E C3 35 8C C4 35 4C
2478:0A 24 AD 0A 1D 8D C3 35
2480:AD 0B 1D 8D C4 35 A9 00
2488:8D C2 35 A9 02 8D C1 35
2490:A9 03 8D BB 35 A9 02 8D
2498:BC 35 20 A8 26 AD 61 2A
24A0:8D C2 35 A8 AD 60 2A 8D
24A8:C1 35 60 20 EA 22 4C CC
24B0:26 CD C2 35 F0 1A AE 5F
24B8:2A 8E 62 2A 4A F0 03 4C
24C0:9E 25 A2 1D BD 75 2A 9D
24C8:93 2A CA 10 F7 4C 7A 25
24D0:60 AD B6 2A F0 03 8D B7
24D8:2A 20 13 24 20 C8 1F 20
24E0:51 28 6C 58 1D A5 4A 85
24E8:CC A5 4B 85 CD 6C 56 1D
24F0:20 16 24 20 C8 1F 20 51
24F8:28 6C 56 1D 20 65 D6 85
2500:33 85 D8 4C D2 D7 20 65
2508:0E 85 33 85 D8 4C D4 0F
2510:20 26 25 A9 05 8D 52 2A
2518:4C 83 1F 20 26 25 A9 01
2520:8D 51 2A 4C 83 1F 20 64
2528:27 90 06 20 A3 22 4C 34
2530:25 20 4E 27 AD 65 2A 29
2538:06 F0 13 A2 03 BD 6E 2A
2540:9D BD 35 CA 10 F7 A9 0A
2548:8D BB 35 20 A8 26 60 A9
2550:40 2D 65 2A F0 05 AD 66
2558:2A D0 05 A9 FE 8D 66 2A
2560:AD 0D 1D 8D BC 35 A9 0B
2568:20 AA 22 4C 97 23 A9 06
2570:20 AA 22 AD BF 35 8D 66
2578:2A 60 A9 4C 20 B2 25 F0
2580:2E A9 00 8D B6 2A A0 1E
2588:20 97 20 A2 09 BD B7 2A
2590:9D 74 2A CA D0 F7 A9 C0
2598:8D 51 2A 4C D1 24 A9 20
25A0:20 B2 25 F0 05 A9 01 4C
25A8:D2 26 A9 00 8D B7 2A 4C
25B0:84 1D CD 00 E0 F0 0E 8D
25B8:80 C0 CD 00 E0 F0 06 8D
25C0:81 C0 CD 00 E0 60 20 A3
25C8:22 AD 4F 2A 8D B4 2A AD
25D0:50 2A 8D B5 2A AD 75 2A
25D8:8D B3 2A D0 0E 20 64 27
25E0:90 06 20 A3 22 4C EB 25
25E8:20 4E 27 AD 65 2A 29 04
25F0:F0 1B AD 6E 2A D0 08 AE
25F8:6F 2A F0 11 CE 6F 2A CE
2600:6E 2A 20 8C 26 F0 38 C9
2608:8D D0 F7 F0 E5 60 20 5E
2610:26 B0 66 AD 5C 2A 8D C3
2618:35 A9 04 8D BB 35 A9 01
2620:8D BC 35 4C A8 26 20 5E
2628:26 B0 4E A9 06 8D 52 2A
2630:20 8C 26 D0 0F 20 FC 22
2638:A9 03 CD 52 2A F0 CE A9
2640:05 4C D2 26 C9 E0 90 02
2648:29 7F 8D 5C 2A AE 5A 2A
2650:F0 09 CA BD 00 02 09 80
2658:9D 00 02 4C B3 1F 48 AD
2660:B6 2A F0 0E A6 76 E8 F0
2668:0D A6 33 E0 DD F0 07 68
2670:18 60 A5 D9 30 F9 68 38
2678:60 20 FC 22 20 5B 27 4C
2680:B3 1F 20 9D 26 20 4E 27
2688:A9 03 D0 A1 A9 03 8D BB
2690:35 A9 01 8D BC 35 20 A8
2698:26 AD C3 35 60 AD B5 2A
26A0:85 41 AD B4 2A 85 40 60
26A8:20 06 2B 90 16 AD C5 35
26B0:C9 05 F0 03 4C 5E 36 4C
26B8:92 36 EA 20 69 3A A2 00
26C0:8E C3 35 60 A9 0B D0 0A
26C8:A9 0C D0 06 A9 0E D0 02
26D0:A9 0D 8D 5C 2A 20 E6 3F
26D8:AD B6 2A F0 04 A5 D8 30
26E0:0E A2 00 20 02 27 AE 5C
26E8:2A 20 02 27 20 C8 1F 20
26F0:51 28 20 5E 26 AE 5C 2A
26F8:A9 03 B0 03 6C 5A 1D 6C
2700:5E 1D BD 3F 2A AA 8E 63
2708:2A BD 71 29 48 09 80 20
2710:C5 1F AE 63 2A E8 68 10
2718:ED 60 AD 66 2A 8D BF 35
2720:AD 68 2A 8D C0 35 AD 6A
2728:2A 8D C1 35 AD 06 1D 8D
2730:C3 35 AD 07 1D 8D C4 35
2738:A5 40 8D 4F 2A A5 41 8D
2740:50 2A 60 A0 1D B9 75 2A
2748:91 40 88 10 F8 60 A0 1E
2750:B1 40 99 A9 35 C8 C0 26
2758:D0 F6 60 A0 00 8C 51 2A
2760:8C 52 2A 60 A9 00 85 45
2768:20 92 27 4C 73 27 20 9A
2770:27 F0 1D 20 AA 27 D0 0A
2778:A5 40 85 44 A5 41 85 45
2780:D0 EC A0 1D B1 40 D9 75
2788:2A D0 E3 88 10 F6 18 60
2790:38 60 AD 00 1D AE 01 1D
2798:D0 0A A0 25 B1 40 F0 09
27A0:AA 88 B1 40 86 41 85 40
27A8:8A 60 A0 00 B1 40 60 AD
27B0:B3 2A F0 0E AD B4 2A C5
27B8:40 D0 08 AD B5 2A C5 41
27C0:F0 01 CA 60 4D C2 35 F0
27C8:0A 29 7F F0 06 20 EA 22
27D0:4C D0 26 60 38 AD 00 1D
27D8:85 40 AD 01 1D 85 41 AD
27E0:57 2A 8D 63 2A A0 00 98
27E8:91 40 A0 1E 38 A5 40 E9
27F0:2D 91 40 48 A5 41 E9 00
27F8:C8 91 40 AA CA 68 48 C8
2800:91 40 8A C8 91 40 AA CA
2808:68 48 C8 91 40 C8 8A 91
2810:40 CE 63 2A F0 17 AA 68
2818:38 E9 26 C8 91 40 48 8A
2820:E9 00 C8 91 40 85 41 68
2828:85 40 4C E5 27 48 A9 00
2830:C8 91 40 C8 91 40 AD B6
2838:2A F0 0B 68 85 74 85 70
2840:68 85 73 85 6F 60 68 85
2848:4D 85 CB 68 85 4C 85 CA
2850:60 A5 39 CD 03 1D F0 12
2858:8D 56 2A A5 38 8D 55 2A
2860:AD 02 1D 85 38 AD 03 1D
2868:85 39 A5 37 CD 05 1D F0
2870:12 8D 54 2A A5 36 8D 53
2878:2A AD 04 1D 85 36 AD 05
2880:1D 85 37 60 49 4E 49 D4
2888:4C 4F 41 C4 53 41 56 C5
2890:52 55 CE 43 48 41 49 CE
2898:44 45 4C 45 54 C5 4C 4F
28A0:43 CB 55 4E 4C 4F 43 CB
28A8:43 4C 4F 53 C5 52 45 41
28B0:C4 45 58 45 C3 57 52 49
28B8:54 C5 50 4F 53 49 54 49
28C0:4F CE 4F 50 45 CE 41 50
28C8:50 45 4E C4 52 45 4E 41
28D0:4D C5 43 41 54 41 4C 4F
28D8:C7 4D 4F CE 4E 4F 4D 4F
28E0:CE 50 52 A3 49 4E A3 4D
28E8:41 58 46 49 4C 45 D3 46
28F0:D0 49 4E D4 42 53 41 56
28F8:C5 42 4C 4F 41 C4 42 52
2900:55 CE 56 45 52 49 46 D9
2908:00 21 70 A0 70 A1 70 A0
2910:70 20 70 20 70 20 70 20
2918:70 60 00 22 06 20 74 22
2920:06 22 04 23 78 22 70 30
2928:70 40 70 40 80 40 80 08
2930:00 08 00 04 00 40 70 40
2938:00 21 79 20 71 20 71 20
2940:70 D6 C4 D3 CC D2 C2 C1
2948:C3 C9 CF 40 20 10 08 04
2950:02 01 C0 A0 90 00 00 FE
2958:00 01 00 02 00 01 00 07
2960:00 01 00 FF 7F 00 00 FF
2968:7F 00 00 FF 7F 00 00 FF
2970:FF 0D 07 8D 4C 41 4E 47
2978:55 41 47 45 20 4E 4F 54
2980:20 41 56 41 49 4C 41 42
2988:4C C5 52 41 4E 47 45 20
2990:45 52 52 4F D2 57 52 49
2998:54 45 20 50 52 4F 54 45
29A0:43 54 45 C4 45 4E 44 20
29A8:4F 46 20 44 41 54 C1 46
29B0:49 4C 45 20 4E 4F 54 20
29B8:46 4F 55 4E C4 56 4F 4C
29C0:55 4D 45 20 4D 49 53 4D
29C8:41 54 43 C8 49 2F 4F 20
29D0:45 52 52 4F D2 44 49 53
29D8:4B 20 46 55 4C CC 46 49
29E0:4C 45 20 4C 4F 43 4B 45
29E8:C4 53 59 4E 54 41 58 20
29F0:45 52 52 4F D2 4E 4F 20
29F8:42 55 46 46 45 52 53 20
2A00:41 56 41 49 4C 41 42 4C
2A08:C5 46 49 4C 45 20 54 59
2A10:50 45 20 4D 49 53 4D 41
2A18:54 43 C8 50 52 4F 47 52
2A20:41 4D 20 54 4F 4F 20 4C
2A28:41 52 47 C5 4E 4F 54 20
2A30:44 49 52 45 43 54 20 43
2A38:4F 4D 4D 41 4E C4 8D 00
2A40:03 19 19 24 33 3E 4C 5B
2A48:64 6D 78 84 98 AA BB 00
2A50:00 00 00 00 00 00 00 00
2A58:03 00 00 00 00 00 00 00
2A60:00 00 00 00 00 00 00 00
2A68:00 00 00 00 01 00 00 00
2A70:00 00 00 00 00 C8 C5 CC
2A78:CC CF A0 A0 A0 A0 A0 A0
2A80:A0 A0 A0 A0 A0 A0 A0 A0
2A88:A0 A0 A0 A0 A0 A0 A0 A0
2A90:A0 A0 A0 A0 A0 A0 A0 A0
2A98:A0 A0 A0 A0 A0 A0 A0 A0
2AA0:A0 A0 A0 A0 A0 A0 A0 A0
2AA8:A0 A0 A0 A0 A0 A0 A0 A0
2AB0:A0 03 84 00 00 00 00 00
2AB8:C1 D0 D0 CC C5 D3 CF C6
2AC0:D4 E8 37 BB 33 BB 34 00
2AC8:40 7E 33 21 2B 05 2C 57
2AD0:2C 6F 2C 2A 2D 97 2D EE
2AD8:2C F5 2C 39 2C 11 2D 8D
2AE0:2E 17 2D 7E 33 7E 33 89
2AE8:2C 95 2C 86 2C 92 2C 7E
2AF0:33 7E 33 BD 2C C9 2C BA
2AF8:2C C6 2C 7E 33 E0 00 F0
2B00:02 A2 02 8E 5F 2A BA 8E
2B08:9B 33 20 6A 2E AD BB 35
2B10:C9 0D B0 0B 0A AA BD CA
2B18:2A 48 BD C9 2A 48 60 4C
2B20:63 33 20 28 2B 4C 7F 33
2B28:20 DC 2B A9 01 8D E3 35
2B30:AE BE 35 AD BD 35 D0 05
2B38:E0 00 D0 01 E8 8D E8 35
2B40:8E E9 35 20 C9 31 90 5E
2B48:8E 9C 33 AE 5F 2A BD 09
2B50:29 AE 9C 33 4A B0 0D AD
2B58:51 2A C9 C0 D0 03 4C 5F
2B60:33 4C 73 33 A9 00 9D E8
2B68:34 A9 01 9D E7 34 8E 9C
2B70:33 20 44 32 AE 9C 33 9D
2B78:C7 34 8D D2 35 8D D4 35
2B80:AD F1 35 9D C6 34 8D D1
2B88:35 8D D3 35 AD C2 35 9D
2B90:C8 34 20 37 30 20 0C 2F
2B98:20 D6 37 20 3A 2F AE 9C
2BA0:33 A9 06 8D C5 35 BD C6
2BA8:34 8D D1 35 BD C7 34 8D
2BB0:D2 35 BD C8 34 8D C2 35
2BB8:8D F6 35 BD E7 34 8D EE
2BC0:35 BD E8 34 8D EF 35 8E
2BC8:D9 35 A9 FF 8D E0 35 8D
2BD0:E1 35 AD E2 33 8D DA 35
2BD8:18 4C 5E 2F A9 00 AA 9D
2BE0:D1 35 E8 E0 2D D0 F8 AD
2BE8:BF 35 49 FF 8D F9 35 AD
2BF0:C0 35 8D F8 35 AD C1 35
2BF8:0A 0A 0A 0A AA 8E F7 35
2C00:A9 11 8D FA 35 60 20 1D
2C08:2F 20 34 2F 20 C3 32 A9
2C10:02 2D D5 35 F0 21 20 F7
2C18:2F A9 00 18 20 11 30 38
2C20:CE D8 35 D0 F7 AE D9 35
2C28:AD EE 35 9D E7 34 AD EF
2C30:35 9D E8 34 20 37 30 4C
2C38:7F 33 20 28 2B AD F6 35
2C40:30 2B AD BD 35 85 42 AD
2C48:BE 35 85 43 AE 9C 33 20
2C50:1C 32 20 37 30 4C 7F 33
2C58:AD BC 35 C9 05 B0 0B 0A
2C60:AA BD E6 2A 48 BD E5 2A
2C68:48 60 4C 67 33 4C 7B 33
2C70:AD F6 35 30 F8 AD BC 35
2C78:C9 05 B0 EE 0A AA BD F2
2C80:2A 48 BD F1 2A 48 60 20
2C88:00 33 20 A8 2C 8D C3 35
2C90:4C 7F 33 20 00 33 20 B5
2C98:31 20 A8 2C 48 20 A2 31
2CA0:A0 00 68 91 42 4C 96 2C
2CA8:20 B6 30 B0 0B B1 42 48
2CB0:20 5B 31 20 94 31 68 60
2CB8:4C 6F 33 20 00 33 AD C3
2CC0:35 20 DA 2C 4C 7F 33 20
2CC8:00 33 20 A2 31 A0 00 B1
2CD0:42 20 DA 2C 20 B5 31 4C
2CD8:CA 2C 48 20 B6 30 68 91
2CE0:42 A9 40 0D D5 35 8D D5
2CE8:35 20 5B 31 4C 94 31 A9
2CF0:80 8D 9E 33 D0 05 A9 00
2CF8:8D 9E 33 20 28 2B AE 9C
2D00:33 BD C8 34 29 7F 0D 9E
2D08:33 9D C8 34 20 37 30 4C
2D10:7F 33 20 00 33 4C 7F 33
2D18:20 28 2B 20 B6 30 B0 EF
2D20:EE E4 35 D0 F6 EE E5 35
2D28:4C 1B 2D 20 28 2B AE 9C
2D30:33 BD C8 34 10 03 4C 7B
2D38:33 AE 9C 33 BD C6 34 8D
2D40:D1 35 9D E6 34 A9 FF 9D
2D48:C6 34 BC C7 34 8C D2 35
2D50:20 37 30 18 20 5E 2F B0
2D58:2A 20 0C 2F A0 0C 8C 9C
2D60:33 B1 42 30 0B F0 09 48
2D68:C8 B1 42 A8 68 20 89 2D
2D70:AC 9C 33 C8 C8 D0 E7 AD
2D78:D3 35 AC D4 35 20 89 2D
2D80:38 B0 D1 20 FB 2F 4C 7F
2D88:33 38 20 DD 32 A9 00 A2
2D90:05 9D F0 35 CA 10 FA 60
2D98:20 DC 2B A9 FF 8D F9 35
2DA0:20 F7 2F A9 16 8D 9D 33
2DA8:20 2F 2E 20 2F 2E A2 0B
2DB0:BD AF 33 20 ED FD CA 10
2DB8:F7 86 45 AD F6 37 85 44
2DC0:20 42 2E 20 2F 2E 20 2F
2DC8:2E 18 20 11 30 B0 5D A2
2DD0:00 8E 9C 33 BD C6 34 F0
2DD8:53 30 4A A0 A0 BD C8 34
2DE0:10 02 A0 AA 98 20 ED FD
2DE8:BD C8 34 29 7F A0 07 0A
2DF0:0A B0 03 88 D0 FA B9 A7
2DF8:33 20 ED FD A9 A0 20 ED
2E00:FD BD E7 34 85 44 BD E8
2E08:34 85 45 20 42 2E A9 A0
2E10:20 ED FD E8 E8 E8 A0 1D
2E18:BD C6 34 20 ED FD E8 88
2E20:10 F6 20 2F 2E 20 30 32
2E28:90 A7 B0 9E 4C 7F 33 A9
2E30:8D 20 ED FD CE 9D 33 D0
2E38:08 20 0C FD A9 15 8D 9D
2E40:33 60 A0 02 A9 00 48 A5
2E48:44 D9 A4 33 90 12 F9 A4
2E50:33 85 44 A5 45 E9 00 85
2E58:45 68 69 00 48 4C 47 2E
2E60:68 09 B0 20 ED FD 88 10
2E68:DB 60 20 08 2F A0 00 8C
2E70:C5 35 B1 42 99 D1 35 C8
2E78:C0 2D D0 F6 18 60 20 08
2E80:2F A0 00 B9 D1 35 91 42
2E88:C8 C0 2D D0 F6 60 20 DC
2E90:2B A9 04 20 58 30 AD F9
2E98:35 49 FF 8D C1 33 A9 11
2EA0:8D EB 33 A9 01 8D EC 33
2EA8:A2 38 A9 00 9D BB 33 E8
2EB0:D0 FA A2 0C E0 8C F0 14
2EB8:A0 03 B9 A0 33 9D F3 33
2EC0:E8 88 10 F6 E0 44 D0 EC
2EC8:A2 48 D0 E8 20 FB 2F A2
2ED0:00 8A 9D BB 34 E8 D0 FA
2ED8:20 45 30 A9 11 AC F0 33
2EE0:88 88 8D EC 37 8D BC 34
2EE8:8C BD 34 C8 8C ED 37 A9
2EF0:02 20 58 30 AC BD 34 88
2EF8:30 05 D0 EC 98 F0 E6 20
2F00:C2 37 20 4A 37 4C 7F 33
2F08:A2 00 F0 06 A2 02 D0 02
2F10:A2 04 BD C7 35 85 42 BD
2F18:C8 35 85 43 60 2C D5 35
2F20:70 01 60 20 E4 2F A9 02
2F28:20 52 30 A9 BF 2D D5 35
2F30:8D D5 35 60 AD D5 35 30
2F38:01 60 20 4B 2F A9 02 20
2F40:52 30 A9 7F 2D D5 35 8D
2F48:D5 35 60 AD C9 35 8D F0
2F50:37 AD CA 35 8D F1 37 AE
2F58:D3 35 AC D4 35 60 08 20
2F60:34 2F 20 4B 2F 20 0C 2F
2F68:28 B0 09 AE D1 35 AC D2
2F70:35 4C B5 2F A0 01 B1 42
2F78:F0 08 AA C8 B1 42 A8 4C
2F80:B5 2F AD BB 35 C9 04 F0
2F88:02 38 60 20 44 32 A0 02
2F90:91 42 48 88 AD F1 35 91
2F98:42 48 20 3A 2F 20 D6 37
2FA0:A0 05 AD DE 35 91 42 C8
2FA8:AD DF 35 91 42 68 AA 68
2FB0:A8 A9 02 D0 02 A9 01 8E
2FB8:D3 35 8C D4 35 20 52 30
2FC0:A0 05 B1 42 8D DC 35 18
2FC8:6D DA 35 8D DE 35 C8 B1
2FD0:42 8D DD 35 6D DB 35 8D
2FD8:DF 35 18 60 20 E4 2F A9
2FE0:01 4C 52 30 AC CB 35 AD
2FE8:CC 35 8C F0 37 8D F1 37
2FF0:AE D6 35 AC D7 35 60 A9
2FF8:01 D0 02 A9 02 AC C3 2A
3000:8C F0 37 AC C4 2A 8C F1
3008:37 AE FA 35 A0 00 4C 52
3010:30 08 20 45 30 28 B0 08
3018:AC BD 33 AE BC 33 D0 0A
3020:AE BC 34 D0 02 38 60 AC
3028:BD 34 8E 97 33 8C 98 33
3030:A9 01 20 52 30 18 60 20
3038:45 30 AE 97 33 AC 98 33
3040:A9 02 4C 52 30 AD C5 2A
3048:8D F0 37 AD C6 2A 8D F1
3050:37 60 8E EC 37 8C ED 37
3058:8D F4 37 C9 02 D0 06 0D
3060:D5 35 8D D5 35 AD F9 35
3068:49 FF 8D EB 37 AD F7 35
3070:8D E9 37 AD F8 35 8D EA
3078:37 AD E2 35 8D F2 37 AD
3080:E3 35 8D F3 37 A9 01 8D
3088:E8 37 AC C1 2A AD C2 2A
3090:20 B5 37 AD F6 37 8D BF
3098:35 A9 FF 8D EB 37 B0 01
30A0:60 AD F5 37 A0 07 C9 20
30A8:F0 08 A0 04 C9 10 F0 02
30B0:A0 08 98 4C 85 33 AD E4
30B8:35 CD E0 35 D0 08 AD E5
30C0:35 CD E1 35 F0 66 20 1D
30C8:2F AD E5 35 CD DD 35 90
30D0:1C D0 08 AD E4 35 CD DC
30D8:35 90 12 AD E5 35 CD DF
30E0:35 90 10 D0 08 AD E4 35
30E8:CD DE 35 90 06 20 5E 2F
30F0:90 D7 60 38 AD E4 35 ED
30F8:DC 35 0A 69 0C A8 20 0C
3100:2F B1 42 D0 0F AD BB 35
3108:C9 04 F0 02 38 60 20 34
3110:31 4C 20 31 8D D6 35 C8
3118:B1 42 8D D7 35 20 DC 2F
3120:AD E4 35 8D E0 35 AD E5
3128:35 8D E1 35 20 10 2F AC
3130:E6 35 18 60 8C 9D 33 20
3138:44 32 AC 9D 33 C8 91 42
3140:8D D7 35 88 AD F1 35 91
3148:42 8D D6 35 20 10 2F 20
3150:D6 37 A9 C0 0D D5 35 8D
3158:D5 35 60 AE EA 35 8E BD
3160:35 AE EB 35 8E BE 35 AE
3168:EC 35 AC ED 35 8E BF 35
3170:8C C0 35 E8 D0 01 C8 CC
3178:E9 35 D0 11 EC E8 35 D0
3180:0C A2 00 A0 00 EE EA 35
3188:D0 03 EE EB 35 8E EC 35
3190:8C ED 35 60 EE E6 35 D0
3198:08 EE E4 35 D0 03 EE E5
31A0:35 60 AC C3 35 AE C4 35
31A8:84 42 86 43 EE C3 35 D0
31B0:03 EE C4 35 60 AC C1 35
31B8:D0 08 AE C2 35 F0 07 CE
31C0:C2 35 CE C1 35 60 4C 7F
31C8:33 20 F7 2F AD C3 35 85
31D0:42 AD C4 35 85 43 A9 01
31D8:8D 9D 33 A9 00 8D D8 35
31E0:18 EE D8 35 20 11 30 B0
31E8:51 A2 00 8E 9C 33 BD C6
31F0:34 F0 1F 30 22 A0 00 E8
31F8:E8 E8 B1 42 DD C6 34 D0
3200:0A C8 C0 1E D0 F3 AE 9C
3208:33 18 60 20 30 32 90 DB
3210:B0 CF AC 9D 33 D0 C1 AC
3218:9D 33 D0 EF A0 00 E8 E8
3220:E8 B1 42 9D C6 34 C8 C0
3228:1E D0 F5 AE 9C 33 38 60
3230:18 AD 9C 33 69 23 AA E0
3238:F5 60 A9 00 AC 9D 33 D0
3240:97 4C 77 33 AD F1 35 F0
3248:21 CE F0 35 30 17 18 A2
3250:04 3E F1 35 CA D0 FA 90
3258:F0 EE EE 35 D0 03 EE EF
3260:35 AD F0 35 60 A9 00 8D
3268:F1 35 A9 00 8D 9E 33 20
3270:F7 2F 18 AD EB 33 6D EC
3278:33 F0 09 CD EF 33 90 14
3280:A9 FF D0 0A AD 9E 33 D0
3288:37 A9 01 8D 9E 33 8D EC
3290:33 18 69 11 8D EB 33 8D
3298:F1 35 A8 0A 0A A8 A2 04
32A0:18 B9 F6 33 9D F1 35 F0
32A8:06 38 A9 00 99 F6 33 88
32B0:CA D0 EE 90 BD 20 FB 2F
32B8:AD F0 33 8D F0 35 D0 89
32C0:4C 77 33 AD F1 35 D0 01
32C8:60 48 20 F7 2F AC F0 35
32D0:68 18 20 DD 32 A9 00 8D
32D8:F1 35 4C FB 2F A2 FC 7E
32E0:F6 34 E8 D0 FA C8 CC F0
32E8:33 D0 F2 0A 0A A8 F0 0F
32F0:A2 04 BD F1 35 19 F6 33
32F8:99 F6 33 88 CA D0 F3 60
3300:AD BD 35 8D E6 35 8D EA
3308:35 AD BE 35 8D E4 35 8D
3310:EB 35 A9 00 8D E5 35 A0
3318:10 AA AD E6 35 4A B0 03
3320:8A 90 0E 18 AD E5 35 6D
3328:E8 35 8D E5 35 8A 6D E9
3330:35 6A 6E E5 35 6E E4 35
3338:6E E6 35 88 D0 DB 18 AD
3340:BF 35 8D EC 35 6D E6 35
3348:8D E6 35 AD C0 35 8D ED
3350:35 6D E4 35 8D E4 35 90
3358:03 EE E5 35 60 00 00 A9
3360:01 D0 22 A9 02 D0 1E A9
3368:03 D0 1A A9 04 D0 16 A9
3370:05 D0 12 A9 06 D0 0E 4C
3378:ED 3F EA A9 0A D0 06 AD
3380:C5 35 18 90 01 38 08 8D
3388:C5 35 A9 00 85 48 20 7E
3390:2E 28 AE 9B 33 9A 60 00
3398:00 00 00 00 00 00 00 00
33A0:00 00 FF FF 01 0A 64 D4
33A8:C9 C1 C2 D3 D2 C1 C2 A0
33B0:C5 CD D5 CC CF D6 A0 CB
33B8:D3 C9 C4 04 11 0F 04 00
33C0:00 FE FC FD FF FC FF FC
33C8:FC FE FF FC FD FF FE FF
33D0:FD FE FF FD FD FD FF FE
33D8:FD FF FC FF FF FD FD FC
33E0:FE FE 7A FE FD FF FD FE
33E8:FE FF FC 11 01 00 00 23
33F0:10 00 01 FF FC FC FD FC
33F8:FE FC FC FD FD FE FC FC
3400:FF FC FC FD FC FD FD FC
3408:FF FE FC FC FC FC FE FE
3410:FC FD FC FC FC FE FC FD
3418:FC FC FE FC FC FC FE FC
3420:FC FF FC FC FC FC FD FD
3428:FC FF FF FC FE FD FE FD
3430:FE FC FF FC FE FF FD FC
3438:FF FC FC FC FD FE FD FE
3440:FC FC FC FF FE FC FC FD
3448:FC FD FF FC FC FC FC FE
3450:FD FC FD FC FC FC FD FC
3458:FD FF FC FE FD FC FC FD
3460:FC FC FC FC FC FC FF FF
3468:FE FC FF FC FD FF FE FF
3470:FE FE FC FC FD FC FC FC
3478:FE FE FE FD FE FD FC FE
3480:FD FD FC FC FE FE FC FC
3488:FD FC FC FE FC FC FD FC
3490:FE FE FC FD FC FC FC FC
3498:FC FD FD FC FE FD FC FC
34A0:FE FC FC FC FC FC FE FC
34A8:FD FD FC FF FD FC FE FE
34B0:FC FD FD FE FF FD FE FF
34B8:FE FF FC 02 FC FD FC FC
34C0:FC FE FE FE FD FE FF FE
34C8:FC FC FC FC FC FE FC FD
34D0:FC FC FF FD FC FE FC FC
34D8:FD FE FE FF FC FE FF FD
34E0:FF FE FC FC FE FE FD FF
34E8:FE FF FF FD FC FE FF FC
34F0:FE FD FE FC FE FC FF FE
34F8:FE FE FC FD FD FE FF FC
3500:FC FC FC FC FC FE FC FD
3508:FD FC FF FD FC FE FE FC
3510:FE FD FC FF FF FC FC FE
3518:FE FD FE FD FE FE FC FC
3520:FE FD FD FC FE FD FC FC
3528:FE FC FC FE FC FC FD FC
3530:FD FD FC FF FD FC FE FD
3538:FC FD FF FC FE FC FC FC
3540:FC FC FC FD FC FC FE FC
3548:FD FC FC FF FC FC FE FD
3550:FC FD FF FC FF FD FE FF
3558:FD FF FE FC FD FF FF FF
3560:FC FC FE FC FC FF FF FC
3568:FC FD FC FE FC FC FC FC
3570:FC FE FC FC FD FD FC FC
3578:FE FC FD FC FC FE FE FC
3580:FC FC FC FC FF FC FC FC
3588:FC FD FD FC FF FC FC FE
3590:FF FC FD FF FC FF FD FE
3598:FF FD FD FD FF FE FD FF
35A0:FC FF FD FD FD FC FE FC
35A8:FC FF FE FC FC FE FC FC
35B0:FE FC FD FD FC FF FD FC
35B8:FE FC FC FF FF FC FC FD
35C0:FC FE FE FE FC FF FC FF
35C8:FC FF FF FE FC FE FC FD
35D0:FF FF FD FD FE FC FC FC
35D8:FC FC FE FD FD FF FE FC
35E0:FE FC FC FC FF FC FC FE
35E8:FE FC FE FC FC FC FF FC
35F0:FC FC FE FC FC FF FD FE
35F8:FC FC FD FC FC FF FD FC
3600:01 A5 27 C9 09 D0 18 A5
3608:2B 4A 4A 4A 4A 09 C0 85
3610:3F A9 5C 85 3E 18 AD FE
3618:08 6D FF 08 8D FE 08 AE
3620:FF 08 30 15 BD 4D 08 85
3628:3D CE FF 08 AD FE 08 85
3630:27 CE FE 08 A6 2B 6C 3E
3638:00 EE FE 08 EE FE 08 20
3640:89 FE 20 93 FE 20 2F FB
3648:A6 2B 6C FD 08 00 0D 0B
3650:09 07 05 03 01 0E 0C 0A
3658:08 06 04 02 0F 00 20 64
3660:27 B0 08 A9 00 A8 8D 5D
3668:36 91 40 AD C5 35 4C D2
3670:26 AD 5D 36 F0 08 EE BD
3678:35 D0 03 EE BE 35 A9 00
3680:8D 5D 36 4C B3 36 8D BC
3688:35 20 A8 26 20 EA 22 4C
3690:7D 22 A0 13 B1 42 D0 14
3698:C8 C0 17 D0 F7 A0 19 B1
36A0:42 99 A4 35 C8 C0 1D D0
36A8:F6 4C BB 26 A2 FF 8E 5D
36B0:36 D0 F6 AD BD 35 8D E6
36B8:35 8D EA 35 AD BE 35 8D
36C0:E7 35 8D EB 35 8D E4 35
36C8:BA 8E 9B 33 4C 7F 33 00
36D0:00 00 00 00 00 00 00 00
36D8:00 00 00 00 00 00 00 00
36E0:00 00 00 00 00 00 00 00
36E8:00 00 00 00 00 00 00 00
36F0:00 00 00 00 00 00 00 00
36F8:00 00 00 00 00 00 36 09
3700:8E E9 37 8E F7 37 A9 01
3708:8D F8 37 8D EA 37 AD E0
3710:37 8D E1 37 A9 02 8D EC
3718:37 A9 04 8D ED 37 AC E7
3720:37 88 8C F1 37 A9 01 8D
3728:F4 37 8A 4A 4A 4A 4A AA
3730:A9 00 9D F8 04 9D 78 04
3738:20 93 37 A2 FF 9A 8E EB
3740:37 4C C8 3F 20 89 FE 4C
3748:03 1B AD E7 37 38 ED F1
3750:37 8D E1 37 AD E7 37 8D
3758:F1 37 CE F1 37 A9 02 8D
3760:EC 37 A9 04 8D ED 37 A9
3768:02 8D F4 37 20 93 37 AD
3770:E7 37 8D FE 36 18 69 09
3778:8D F1 37 A9 0A 8D E1 37
3780:38 E9 01 8D FF 36 8D ED
3788:37 20 93 37 60 00 00 00
3790:00 00 00 AD E5 37 AC E4
3798:37 20 B5 37 AC ED 37 88
37A0:10 07 A0 0F EA EA CE EC
37A8:37 8C ED 37 CE F1 37 CE
37B0:E1 37 D0 DF 60 08 78 20
37B8:00 3D B0 03 28 18 60 28
37C0:38 60 AD BC 35 8D F1 37
37C8:A9 00 8D F0 37 AD F9 35
37D0:49 FF 8D EB 37 60 A9 00
37D8:A8 91 42 C8 D0 FB 60 00
37E0:1B 00 0A 1B E8 37 00 36
37E8:01 60 01 00 00 00 FB 37
37F0:00 00 00 01 00 00 00 60
37F8:01 00 00 00 01 EF D8 00
3800:A2 00 A0 02 88 B1 3E 4A
3808:3E 00 3C 4A 3E 00 3C 99
3810:00 3B E8 E0 56 90 ED A2
3818:00 98 D0 E8 A2 55 BD 00
3820:3C 29 3F 9D 00 3C CA 10
3828:F5 60 38 86 27 8E 78 06
3830:BD 8D C0 BD 8E C0 30 7C
3838:AD 00 3C 85 26 A9 FF 9D
3840:8F C0 1D 8C C0 48 68 EA
3848:A0 04 48 68 20 B9 38 88
3850:D0 F8 A9 D5 20 B8 38 A9
3858:AA 20 B8 38 A9 AD 20 B8
3860:38 98 A0 56 D0 03 B9 00
3868:3C 59 FF 3B AA BD 29 3A
3870:A6 27 9D 8D C0 BD 8C C0
3878:88 D0 EB A5 26 EA 59 00
3880:3B AA BD 29 3A AE 78 06
3888:9D 8D C0 BD 8C C0 B9 00
3890:3B C8 D0 EA AA BD 29 3A
3898:A6 27 20 BB 38 A9 DE 20
38A0:B8 38 A9 AA 20 B8 38 A9
38A8:EB 20 B8 38 A9 FF 20 B8
38B0:38 BD 8E C0 BD 8C C0 60
38B8:18 48 68 9D 8D C0 1D 8C
38C0:C0 60 A0 00 A2 56 CA 30
38C8:FB B9 00 3B 5E 00 3C 2A
38D0:5E 00 3C 2A 91 3E C8 C4
38D8:26 D0 EB 60 A0 20 88 F0
38E0:61 BD 8C C0 10 FB 49 D5
38E8:D0 F4 EA BD 8C C0 10 FB
38F0:C9 AA D0 F2 A0 56 BD 8C
38F8:C0 10 FB C9 AD D0 E7 A9
3900:00 88 84 26 BC 8C C0 10
3908:FB 59 00 3A A4 26 99 00
3910:3C D0 EE 84 26 BC 8C C0
3918:10 FB 59 00 3A A4 26 99
3920:00 3B C8 D0 EE BC 8C C0
3928:10 FB D9 00 3A D0 13 BD
3930:8C C0 10 FB C9 DE D0 0A
3938:EA BD 8C C0 10 FB C9 AA
3940:F0 5C 38 60 A0 FC 84 26
3948:C8 D0 04 E6 26 F0 F3 BD
3950:8C C0 10 FB C9 D5 D0 F0
3958:EA BD 8C C0 10 FB C9 AA
3960:D0 F2 A0 03 BD 8C C0 10
3968:FB C9 96 D0 E7 A9 00 85
3970:27 BD 8C C0 10 FB 2A 85
3978:26 BD 8C C0 10 FB 25 26
3980:99 2C 00 45 27 88 10 E7
3988:A8 D0 B7 BD 8C C0 10 FB
3990:C9 DE D0 AE EA BD 8C C0
3998:10 FB C9 AA D0 A4 18 60
39A0:86 2B 85 2A CD 78 04 F0
39A8:53 A9 00 85 26 AD 78 04
39B0:85 27 38 E5 2A F0 33 B0
39B8:07 49 FF EE 78 04 90 05
39C0:69 FE CE 78 04 C5 26 90
39C8:02 A5 26 C9 0C B0 01 A8
39D0:38 20 EE 39 B9 11 3A 20
39D8:00 3A A5 27 18 20 F1 39
39E0:B9 1D 3A 20 00 3A E6 26
39E8:D0 C3 20 00 3A 18 AD 78
39F0:04 29 03 2A 05 2B AA BD
39F8:80 C0 A6 2B 60 00 00 00
3A00:A2 11 CA D0 FD E6 46 D0
3A08:02 E6 47 38 E9 01 D0 F0
3A10:60 01 30 28 24 20 1E 1D
3A18:1C 1C 1C 1C 1C 70 2C 26
3A20:22 1F 1E 1D 1C 1C 1C 1C
3A28:1C 96 97 9A 9B 9D 9E 9F
3A30:A6 A7 AB AC AD AE AF B2
3A38:B3 B4 B5 B6 B7 B9 BA BB
3A40:BC BD BE BF CB CD CE CF
3A48:D3 D6 D7 D9 DA DB DC DD
3A50:DE DF E5 E6 E7 E9 EA EB
3A58:EC ED EE EF F2 F3 F4 F5
3A60:F6 F7 F9 FA FB FC FD FE
3A68:FF AE 5F 2A E0 1C F0 05
3A70:A2 00 8E 5D 36 60 A9 FF
3A78:8D FB 04 8D 0C C0 8D 0E
3A80:C0 4C 2F FB 00 00 00 00
3A88:00 00 00 00 00 00 00 00
3A90:00 00 00 00 00 00 00 01
3A98:98 99 02 03 9C 04 05 06
3AA0:A0 A1 A2 A3 A4 A5 07 08
3AA8:A8 A9 AA 09 0A 0B 0C 0D
3AB0:B0 B1 0E 0F 10 11 12 13
3AB8:B8 14 15 16 17 18 19 1A
3AC0:C0 C1 C2 C3 C4 C5 C6 C7
3AC8:C8 C9 CA 1B CC 1C 1D 1E
3AD0:D0 D1 D2 1F D4 D5 20 21
3AD8:D8 22 23 24 25 26 27 28
3AE0:E0 E1 E2 E3 E4 29 2A 2B
3AE8:E8 2C 2D 2E 2F 30 31 32
3AF0:F0 F1 33 34 35 36 37 38
3AF8:F8 39 3A 3B 3C 3D 3E 3F
3B00:00 00 00 00 00 00 00 00
3B08:00 00 00 00 00 00 00 00
3B10:00 00 00 00 00 00 00 00
3B18:00 00 00 00 00 00 00 00
3B20:00 00 00 00 00 00 00 00
3B28:00 00 00 00 00 00 00 00
3B30:00 00 00 00 00 00 00 00
3B38:00 00 00 00 00 00 00 00
3B40:00 00 00 00 00 00 00 00
3B48:00 00 00 00 00 00 00 00
3B50:00 00 00 00 00 00 00 00
3B58:00 00 00 00 00 00 00 00
3B60:00 00 00 00 00 00 00 00
3B68:00 00 00 00 00 00 00 00
3B70:00 00 00 00 00 00 00 00
3B78:00 00 00 00 00 00 00 00
3B80:00 00 00 00 00 00 00 00
3B88:00 00 00 00 00 00 00 00
3B90:00 00 00 00 00 00 00 00
3B98:00 00 00 00 00 00 00 00
3BA0:00 00 00 00 00 00 00 00
3BA8:00 00 00 00 00 00 00 00
3BB0:00 00 00 00 00 00 00 00
3BB8:00 00 00 00 00 00 00 00
3BC0:00 00 00 00 00 00 00 00
3BC8:00 00 00 00 00 00 00 00
3BD0:00 00 00 00 00 00 00 00
3BD8:00 00 00 00 00 00 00 00
3BE0:00 00 00 00 00 00 00 00
3BE8:00 00 00 00 00 00 00 00
3BF0:00 00 00 00 00 00 00 00
3BF8:00 00 00 00 00 00 00 00
3C00:00 00 00 00 00 00 00 00
3C08:00 00 00 00 00 00 00 00
3C10:00 00 00 00 00 00 00 00
3C18:00 00 00 00 00 00 00 00
3C20:00 00 00 00 00 00 00 00
3C28:00 00 00 00 00 00 00 00
3C30:00 00 00 00 00 00 00 00
3C38:00 00 00 00 00 00 00 00
3C40:00 00 00 00 00 00 00 00
3C48:00 00 00 00 00 00 00 00
3C50:00 00 00 00 00 00 38 BD
3C58:8D C0 BD 8E C0 30 5E A9
3C60:FF 9D 8F C0 DD 8C C0 48
3C68:68 20 C3 3C 20 C3 3C 9D
3C70:8D C0 DD 8C C0 EA 88 D0
3C78:F0 A9 D5 20 D5 3C A9 AA
3C80:20 D5 3C A9 96 20 D5 3C
3C88:A5 41 20 C4 3C A5 44 20
3C90:C4 3C A5 3F 20 C4 3C A5
3C98:41 45 44 45 3F 48 4A 05
3CA0:3E 9D 8D C0 BD 8C C0 68
3CA8:09 AA 20 D4 3C A9 DE 20
3CB0:D5 3C A9 AA 20 D5 3C A9
3CB8:EB 20 D5 3C 18 BD 8E C0
3CC0:BD 8C C0 60 48 4A 05 3E
3CC8:9D 8D C0 DD 8C C0 68 EA
3CD0:EA EA 09 AA EA EA 48 68
3CD8:9D 8D C0 DD 8C C0 60 00
3CE0:00 00 00 00 00 00 00 00
3CE8:00 00 00 00 00 00 00 00
3CF0:00 00 00 00 00 00 00 00
3CF8:00 00 00 00 00 00 00 00
3D00:84 48 85 49 A0 02 8C F8
3D08:06 A0 04 8C F8 04 A0 01
3D10:B1 48 AA A0 0F D1 48 F0
3D18:1B 8A 48 B1 48 AA 68 48
3D20:91 48 BD 8E C0 A0 08 BD
3D28:8C C0 DD 8C C0 D0 F6 88
3D30:D0 F8 68 AA BD 8E C0 BD
3D38:8C C0 A0 08 BD 8C C0 48
3D40:68 48 68 8E F8 05 DD 8C
3D48:C0 D0 03 88 D0 EE 08 BD
3D50:89 C0 A0 06 B1 48 99 36
3D58:00 C8 C0 0A D0 F6 A0 03
3D60:B1 3C 85 47 A0 02 B1 48
3D68:A0 10 D1 48 F0 06 91 48
3D70:28 A0 00 08 6A 90 05 BD
3D78:8A C0 B0 03 BD 8B C0 66
3D80:35 28 08 D0 0B A0 07 20
3D88:00 3A 88 D0 FA AE F8 05
3D90:A0 04 B1 48 20 5A 3E 28
3D98:D0 11 A4 47 10 0D A0 12
3DA0:88 D0 FD E6 46 D0 F7 E6
3DA8:47 D0 F3 A0 0C B1 48 F0
3DB0:5A C9 04 F0 58 6A 08 B0
3DB8:03 20 00 38 A0 30 8C 78
3DC0:05 AE F8 05 20 44 39 90
3DC8:24 CE 78 05 10 F3 AD 78
3DD0:04 48 A9 60 20 95 3E CE
3DD8:F8 06 F0 28 A9 04 8D F8
3DE0:04 A9 00 20 5A 3E 68 20
3DE8:5A 3E 4C BC 3D A4 2E CC
3DF0:78 04 F0 1C AD 78 04 48
3DF8:98 20 95 3E 68 CE F8 04
3E00:D0 E5 F0 CA 68 A9 40 28
3E08:4C 48 3E F0 39 4C AF 3E
3E10:A0 03 B1 48 48 A5 2F A0
3E18:0E 91 48 68 F0 08 C5 2F
3E20:F0 04 A9 20 D0 E1 A0 05
3E28:B1 48 A8 B9 B8 3F C5 2D
3E30:D0 97 28 90 1C 20 DC 38
3E38:08 B0 8E 28 A2 00 86 26
3E40:20 C2 38 AE F8 05 18 24
3E48:38 A0 0D 91 48 BD 88 C0
3E50:60 20 2A 38 90 F0 A9 10
3E58:B0 EE 48 A0 01 B1 3C 6A
3E60:68 90 08 0A 20 6B 3E 4E
3E68:78 04 60 85 2A 20 8E 3E
3E70:B9 78 04 24 35 30 03 B9
3E78:F8 04 8D 78 04 A5 2A 24
3E80:35 30 05 99 F8 04 10 03
3E88:99 78 04 4C A0 39 8A 4A
3E90:4A 4A 4A A8 60 48 A0 02
3E98:B1 48 6A 66 35 20 8E 3E
3EA0:68 0A 24 35 30 05 99 F8
3EA8:04 10 03 99 78 04 60 A0
3EB0:03 B1 48 85 41 A9 AA 85
3EB8:3E A0 56 A9 00 85 44 99
3EC0:FF 3B 88 D0 FA 99 00 3B
3EC8:88 D0 FA A9 50 20 95 3E
3ED0:A9 28 85 45 A5 44 20 5A
3ED8:3E 20 0D 3F A9 08 B0 24
3EE0:A9 30 8D 78 05 38 CE 78
3EE8:05 F0 19 20 44 39 B0 F5
3EF0:A5 2D D0 F1 20 DC 38 B0
3EF8:EC E6 44 A5 44 C9 23 90
3F00:D3 18 90 05 A0 0D 91 48
3F08:38 BD 88 C0 60 A9 00 85
3F10:3F A0 80 D0 02 A4 45 20
3F18:56 3C B0 6B 20 2A 38 B0
3F20:66 E6 3F A5 3F C9 10 90
3F28:EC A0 0F 84 3F A9 30 8D
3F30:78 05 99 A8 3F 88 10 FA
3F38:A4 45 20 87 3F 20 87 3F
3F40:20 87 3F 48 68 EA 88 D0
3F48:F1 20 44 39 B0 23 A5 2D
3F50:F0 15 A9 10 C5 45 A5 45
3F58:E9 01 85 45 C9 05 B0 11
3F60:38 60 20 44 39 B0 05 20
3F68:DC 38 90 1C CE 78 05 D0
3F70:F1 20 44 39 B0 0B A5 2D
3F78:C9 0F D0 05 20 DC 38 90
3F80:8C CE 78 05 D0 EB 38 60
3F88:A4 2D B9 A8 3F 30 DD A9
3F90:FF 99 A8 3F C6 3F 10 CA
3F98:A5 44 D0 0A A5 45 C9 10
3FA0:90 E5 C6 45 C6 45 18 60
3FA8:00 00 00 00 00 00 00 00
3FB0:00 00 00 00 00 00 00 00
3FB8:00 0D 0B 09 07 05 03 01
3FC0:0E 0C 0A 08 06 04 02 0F
3FC8:20 93 FE AD 81 C0 AD 81
3FD0:C0 A9 00 8D 00 E0 20 76
3FD8:3A 4C 44 37 8D 63 2A 8D
3FE0:70 2A 8D 71 2A 60 20 5B
3FE8:27 8C B7 2A 60 20 7E 2E
3FF0:AE 9B 33 9A 20 16 23 BA
3FF8:8E 9B 33 A9 09 4C 85 33
Michaelangel007 commented 6 years ago

Note

There is a typo in the DOS.TO.DISK script

This won't clear page $91

9100:00
9101<9000.91FFM

Needs to be:

9100:0
9101<9100.91FFM
Michaelangel007 commented 6 years ago
  1. Boot DOS 3.3B
  2. Remove from Drive 1.
  3. Insert into Drive 2
  4. Insert blank disk into Drive 1

Note: To exec you need to change the <Ctrl-Y> to a single character. Probably easiest if you hex edit it.

CALL-151
6B00<3600.36FFM
6C00<1F00.1FFFM
6D00<1E00.1EFFM
6E00<1D00.1DFFM
6F00<1C00.1CFFM
7000<1B00.1BFFM
7100<3F00.3FFFM
7200<3E00.3EFFM
7300<3D00.3DFFM
7400<3C00.3CFFM
7500<3B00.3BFFM
7600<3A00.3AFFM
7700<3900.39FFM
7800<3800.38FFM
7900<3700.37FFM
7A00<2000.20FFM
7B00<2100.21FFM
7C00<2F00.2FFFM
7D00<2E00.2EFFM
7E00<2D00.2DFFM
7F00<2C00.2CFFM
8000<2B00.2BFFM
8100<2A00.2AFFM
8200<2900.29FFM
8300<2800.28FFM
8400<2700.27FFM
8500<2600.26FFM
8600<2500.25FFM
8700<2400.24FFM
8800<2300.23FFM
8900<2200.22FFM
8A00<3000.30FFM
8B00<3100.31FFM
8C00:0
8C01<8C00.8CFFM
8D00<3500.35FFM
8E00<3400.34FFM
8F00<3300.33FFM
9000<3200.32FFM
9100:0
9101<9100.91FFM
280:AD 0 C0 10 FB 2C 10 C0 60 A9 60 4C ED FD
0300:A9 4C 8D F8 03 A9 11 8D F9 03 A9 03 8D FA 03 D0
0310:2B AD E9 B7 8D B9 03 8D C7 03 AD EA B7 8D BA 03
0320:8D C8 03 A2 00 BD 00 02 C9 99 F0 03 E8 D0 F6 BD
0330:01 02 A0 02 C9 D7 F0 08 C9 D2 F0 03 4C 65 FF 88
0340:8C C4 03 A5 3C 8D C0 03 A5 3D 8D C1 03 A5 3E 85
0350:0E A5 3F 85 0F A5 42 0A 29 0F A8 88 8C A7 03 46
0360:43 66 42 66 42 66 42 A5 42 29 3F 8D BC 03 AC A7
0370:03 C8 C0 10 D0 05 EE BC 03 A0 00 B9 A8 03 8D BD
0380:03 8C A7 03 A9 03 A0 B8 20 D9 03 90 06 20 2D FF
0390:4C 69 FF E6 3D EE C1 03 AD C0 03 C5 0E AD C1 03
03A0:E5 0F 90 CA 4C 69 FF A0 00 0E 0D 0C 0B 0A 09 08
03B0:07 06 05 04 03 02 01 0F 01 A0 A0 00 E0 A0 C9 03
03C0:E8 D2 A0 A0 F7 A0 A9 9E BD 00 01 EF D8
3D0G
PRINT"INSERT A BLANK DISK IN DRIVE 1":PRINT"AND PRESS 'RETURN' ";:CALL649
CALL640
LOADHELLO,D2
INITHELLO,D1
CALL-151
300G
0<6B00.8CFF<Ctrl-Y>W
15<8C00.91FF<Ctrl-Y>W
3D0G
PRINT"DOS 3.3C NOW ON DISK"
TommyGH commented 6 years ago

A couple of days ago you wrote:

File: DOS33C.OBJ Range: 1D00.41FF Save: BSAVE DOS33C.OBJ,A$1D00,L$2500

A MASTER disk is loaded to 1B00. The DOS.TO-DISK works with $1B00 to $4000. Don't you want:

Range: 1B00.4000 Save: BSAVE DOS33C.OBJ,A$1B00,L$2500

What am I missing?

And while I'm here, there is another typo:

0<6B00.8CFFW 15<8C00.91FFW3

The second line should end with "W", not "W3".

You might want to also point out that if you want to capture this text into an EXEC file, to change the "< Ctrl-Y >" to the single character before EXECing it.

*** I hate WYSIWYdon'tG when using "special" characters like less than or greater than.

Michaelangel007 commented 6 years ago

Thanks for the catches Tommy.

Michaelangel007 commented 6 years ago

Reverse Engineered BLOCKIO.S -- exact byte match

Assembler: Merlin32

; BLOCKIO
; Write DOS 3.3 image to disk
;
; Syntax:
;    Sector < StartAddr.EndAddr <Ctrl-Y> <Mode>
;
; Legend:
;    Sector:  0 = $00
;            15 = $09
;    Mode  : R or W
;
; Examples:
;   00<6B00.8CFF<Ctrl-Y>W
;   15<8C00.91FF<Ctrl-Y>W
;
; ZP Mem usage:
;   [$A4] < [$A1].[$A2]
;                 [$0E]

END         EQU $0E     ; 16-bit pointer

MON_A1L     EQU $3C
MON_A1H     EQU $3D

MON_A2L     EQU $3E
MON_A2H     EQU $3F

MON_A4L     EQU $42
MON_A4H     EQU $43

IN_BUF      EQU $0200

USRADR      EQU $03F8   ; Ctrl-Y Vector
DO_RWTS     EQU $03D9   ; JMP $B7B5 RWTS (ReadWriteTrackSector)

IB_CMD_R    EQU 1
IB_CMD_W    EQU 2

IBSLOT      EQU $B7E9   ; DOS 3.3
IBDRVN      EQU $B7EA   ; DOS 3.3

MON         EQU $FF65
MONZ        EQU $FF69
PRERR       EQU $FF2D

            ORG $0300

MAIN
            LDA #$4C          ; "JMP" opcode
            STA USRADR        ; Ctrl-Y vector
            LDA #<USR         ; lo @ USR = $311
            STA USRADR+1      ;
            LDA #>USR         ; hi @ USR = $311
            STA USRADR+2      ;
            BNE QUIT          ; Always (assumes we are not running fro

USR         LDA IBSLOT        ;B7E9:60
            STA IOB_SLOT      ;
            STA IOB_OLD_SLT   ;
            LDA IBDRVN        ;B7EA:01
            STA IOB_DRIVE     ;
            STA IOB_OLD_DRV   ;

            LDX #$00
SCAN_BUF    LDA IN_BUF,X
            CMP #$99          ;Have Ctrl-Y?
            BEQ HAVE_CY       ;
            INX               ;
            BNE SCAN_BUF      ;Max 255 chars
HAVE_CY     LDA IN_BUF+1,X    ; Command: Write or Read
            LDY #IB_CMD_W     ; Default to write
            CMP #'W'+$80      ; W = Write
            BEQ HAVE_W        ;
            CMP #'R'+$80      ; R = Read
            BEQ HAVE_R        ;
QUIT        JMP MON           ; Unknown command, bail to monitor

HAVE_R      DEY               ; Change from write to read command
HAVE_W      STY IOB_CMD       ;

            LDA MON_A1L       ; [$A4] < [$A1].[$A2] <Ctrl-Y> <Cmd>
            STA IOB_BUF+0     ;
            LDA MON_A1H       ;
            STA IOB_BUF+1     ;

            LDA MON_A2L       ;
            STA END           ;
            LDA MON_A2H       ;
            STA END+1         ;
            LDA MON_A4L       ;                A=15
            ASL               ;   y*2          A=2A
            AND #$0F          ;  (y*2) & F     A=0A
            TAY               ;
            DEY               ; ((y*2) & F)-1  Y=09, Trk $0, Sec $9
            STY CUR_SEC       ;
            LSR MON_A4H       ; $00/2 --> C=0
            ROR MON_A4L       ; Sec/2
            ROR MON_A4L       ; Sec/4
            ROR MON_A4L       ; Sec/8
            LDA MON_A4L       ;
            AND #$3F          ;Useless clamping track MOD 63
            STA IOB_TRACK     ;When max track is 40 tracks

NEXT_SEC    LDY CUR_SEC       ;
            INY               ;
            CPY #$10          ;Finished 16 sectors on track?
            BNE SAME_TRK      ;
            INC IOB_TRACK     ;Move to next track
            LDY #$00          ;Restart on Sector 0
SAME_TRK    LDA INTERLEAVE,Y  ;
            STA IOB_SECTOR    ;
            STY CUR_SEC       ;
            LDA #>IOB         ; hi @ IOB @ $3B8
            LDY #<IOB         ; lo @ IOB @ $3B8
            JSR DO_RWTS       ;
            BCC NO_ERR        ;v [Wastes 3 bytes: BCS ERR           ]
            JSR PRERR         ;  [PRERR should be before QUIT @ $33C]
            JMP MONZ          ;  [and this JMP can be omitted       ]
NO_ERR      INC MON_A1H       ;Useless StartAddress++
            INC IOB_BUF+1     ;
            LDA IOB_BUF       ;
            CMP END           ;C=(Current offset == done?)
            LDA IOB_BUF+1     ;
            SBC END+1         ;
            BCC NEXT_SEC      ;
            JMP MONZ          ;Wastes 1 bytes: BCS $33C

CUR_SEC     db #$A0           ;
INTERLEAVE  db #$00           ;
            db #$0E           ;
            db #$0D           ;
            db #$0C           ;
            db #$0B           ;
            db #$0A           ;
            db #$09           ;
            db #$08           ;
            db #$07           ;
            db #$06           ;
            db #$05           ;
            db #$04           ;
            db #$03           ;
            db #$02           ;
            db #$01           ;
            db #$0F           ;

IOB         db #$01           ; [0] IOB_OFFSET_TYPE: Hard-coded Type 1
IOB_SLOT    db #$A0           ; [1] IOB_OFFSET_SLOT
IOB_DRIVE   db #$A0           ; [2] IOB_OFFSET_DRV_NUM
IOB_VOLUME  db #$00           ; [3] IOB_OFFSET_VOL
IOB_TRACK   db #$E0           ; [4] IOB_OFFSET_TRK
IOB_SECTOR  db #$A0           ; [5] IOB_OFFSET_SEC
IOB_DCT     dw DCT            ; [6] IOB_OFFSET_DCT
IOB_BUF     dw $D2E8          ; [8] IOB_OFFSET_BUF
IOB_LEN     dw $A0A0          ; [A] IOB_OFFSET_LEN
IOB_CMD     db #$F7           ; [C] IOB_OFFSET_CMD, 1=Read, 2=Write
            db #$A0           ; [D] IOB_OFFSET_STATUS
            db #$A9           ; [E] IOB_OFFSET_MOD
IOB_OLD_SLT db #$9E           ; [F] IOB_OFFSET_PREV_SLOT
IOB_OLD_DRV db #$BD           ;[10] IOB_OFFSET_PREV_DRV

DCT         db #$00           ; [0] Device Type, $0 = Disk II
            db #$01           ; [1] Phases per Track-1
            dw $D8EF          ; [2] Motor on time in 100 microseconds
TommyGH commented 6 years ago

Some comments are wrong regarding the first parameter "Sector".

Sector < StartAddr.EndAddr < ctrl-y > < Mode >

The term "Sector" is not accurate. It should be "Block" or perhaps "StartDiskBlock". It is similar (or identical?) to the definition of a Pascal block, and I think it is the same as a ProDos "Block" (but don't quote me on ProDos).

Block < StartAddr.EndAddr < ctrl-y > Mode

Legend should be the following:

Block: 0 = T0S0 Block: 15 = T2SA

Here is my explanation of Block:

A Block is defined as 2 consecutive sectors on a track beginning with an "even" sector (0, 2, 4, ...). Instead of using "Track" and "Sector" to describe an area on the disk, a single Block number can be used. With 9 bits you can identify all Blocks on a disk.

Blocks are numbered (using Hex) as follows:

Block $0 = T0S0 T0S1 Block $1 = T0S2 T0S3 Block $2 = T0S4 T0s5

Block $8 = T1S0 T1S1

Block $15 = T2SA T2SB

The best way to visualize Block numbering is to think binary:

Block = .......T TTTTTSSS (high order byte on left)

If you have a font with subscripts, the rightmost "S" would be 0, and the rightmost T would be 0 (least significant bit).

I might suggest documenting the code as follows:


            LDA MON_A4L       ; TTTTTsss 00010101 A=15
            ASL               ; TTTTsss0 00101010 A=2A
            AND #$0F          ; 0000sss0 00001010 A=0A
            TAY               ; Target sector = $0A

            DEY               ; Dec before NEXT_SEC loop
            STY CUR_SEC       ;
                              ; A4H=0    A4L=15
                              ; .......T TTTTTsss
            LSR MON_A4H       ; C=track MSB (most significant bit) 
                              ; T TTTTTsss --- 0 00010101  
            ROR MON_A4L       ; s TTTTTTss --- 1 00001010
            ROR MON_A4L       ; s sTTTTTTs --- 0 10000101       
            ROR MON_A4L       ; s ssTTTTTT --- 1 01000010
            LDA MON_A4L       ;
            AND #$3F          ; Isolate track bits
            STA IOB_TRACK     ; Target track = 00000010 = $02
 NEXT_SEC   LDY CUR_SEC       ;
            INY               ; Next sector

One minor note about this design. If the input string identifies an odd number of sectors to write, this code will start at an even block boundary and the last sector written will be the first sector of a block (without writing to the second sector).

Michaelangel007 commented 6 years ago

Thanks for the track/sector/block clarification !

I'll get that incorporated into the next revision of blockio.s "soonish."

Interesting that it might a block might be 2 sectors like ProDOS, etc.

Michaelangel007 commented 6 years ago

blockio.s has been added to the repo.

Cleaned up the block/track/sector so that it now reads:

; Syntax:
;    Block < StartAddr.EndAddr <Ctrl-Y> <Mode>
;
; Legend:
;    Block: 0000000T tttttsss
;    Mode : R or W
;
; Note: Block is a combined Track/Sector
;    Tttttt = Track
;    sss    = Sector
;

and

            STA END+1         ; C n        C bits
            LDA MON_A4L       ; ? tttttsss ? 00010101 A=15 
            ASL               ; t ttttsss0 0 00101010 A=2A  n*2
            AND #$0F          ; t 0000sss0 0 00001010 A=0A (n*2) & F
            TAY               ; Save sector
            DEY               ; NOTE: NEXT_SEC does INY then CPY
            STY CUR_SEC       ;
                              ;
            LSR MON_A4H       ; T ???????? 0 00000000  =00 High byte of Block!
            ROR MON_A4L       ; s Ttttttss 0 00001010  =0A
            ROR MON_A4L       ; s sTttttts 0 10000101  =05
            ROR MON_A4L       ; s ssTttttt 1 00000010  =02
            LDA MON_A4L       ; s ssTttttt 1 00000010  =02
            AND #$3F          ; s 00Tttttt 1 00000010  =02
            STA IOB_TRACK     ; Above is bloated, shorter is: LDA MON_A4H, ROR, ROR, ROR, AND #$3F, STA IOB_TRACK