mirror of
https://github.com/Michaelangel007/c2t.git
synced 2024-12-28 01:29:42 +00:00
4353 lines
142 KiB
C
4353 lines
142 KiB
C
|
|
const char *usagetext="\n\
|
|
usage: c2t [-vh?]\n\
|
|
c2t [-elp] input[.mon],[addr] ... [output.mon]\n\
|
|
c2t {-1} [-cepr] input[.mon],[addr] ... [output.[aif[f]|wav[e]]]\n\
|
|
c2t {-2} [-abcdef8pmqr] input[.mon],[addr] ... [output.[aif[f]|wav[e]]]\n\
|
|
c2t [-n8] input.dsk ... [output.[aif[f]|wav[e]]]\n\
|
|
\n\
|
|
-1 or -2 for Apple I or II tape format\n\
|
|
-8 use 48k/8bit 8000 bps transfer (Apple II/II+/IIe 64K only)\n\
|
|
Implies -2a. Negates -f and -d.\n\
|
|
-a assembly autoload and run (Apple II/II+/IIe 64K only)\n\
|
|
-b basic autoload and run (Apple II+/IIe 64K only)\n\
|
|
Implies -2a.\n\
|
|
-c compress data\n\
|
|
-d use fast 44.1k/16bit transfer (Apple II/II+/IIe 64K only)\n\
|
|
Implies -2a. Negates -f and -8. Use for burning CDs.\n\
|
|
-e pad with $00 to end on page boundary\n\
|
|
-f use faster 48k/8bit (9600 bps) transfer (Apple II/II+/IIe 64K only)\n\
|
|
Implies -2a. Negates -8 and -d. Unreliable on some systems.\n\
|
|
-h|? this help\n\
|
|
-l long monitor format (24 bytes/line)\n\
|
|
-m jump to monitor after autoload\n\
|
|
-n do not format disks\n\
|
|
-p pipe to stdout\n\
|
|
-q parameters and data only (for use with custom client)\n\
|
|
-r #, where # overrides the sample rate (e.g. -r 48000)\n\
|
|
Negates -a, -b, -8, -q, -f, and -d\n\
|
|
-t 10 second preamble (default 4) for real tape use\n\
|
|
-v print version number and exit\n\
|
|
\n\
|
|
input(s) without a .mon or .dsk extension is assumed to be a binary with a 4\n\
|
|
byte header. If the header is missing then you must append ,load_address to\n\
|
|
each binary input missing a header, e.g. filename,800. The load address\n\
|
|
will be read as hex.\n\
|
|
\n\
|
|
input(s) with a .mon extension expected input format:\n\
|
|
\n\
|
|
0280: A2 FF 9A 20 8C 02 20 4F\n\
|
|
0288: 03 4C 00 FF 20 9E 02 A9\n\
|
|
\n\
|
|
A single input with a .dsk extension expected to be a 140K disk image.\n\
|
|
\n\
|
|
output must have aiff, aif, wav, wave, or mon extention.\n\
|
|
\n\
|
|
Examples:\n\
|
|
\n\
|
|
c2t hello hello.mon\n\
|
|
c2t -p hello.mon print.mon foo,800 | pbcopy\n\
|
|
c2t -2f moon.patrol,801 moon.patrol.aif\n\
|
|
c2t -2 hello,300 hello.aiff\n\
|
|
c2t -1 hello.mon hello.wav\n\
|
|
c2t -2 thief,801 thief.obj,3ffd thief.pic,2000 theif.aif\n\
|
|
c2t foo.dsk foo.wav\n\
|
|
\n\
|
|
";
|
|
|
|
//51 00 D5, 3 byte header, LENGTH LSB/MSB, D5 for autorun
|
|
unsigned char header[] = {0x00,0x00,0xD5};
|
|
|
|
|
|
/*
|
|
basic program "CALL 2060", 801.80B
|
|
|
|
end of code[LSB,MSB] = 0x0B,0x08
|
|
line #[LSB,MSG] = 0x01,0x00
|
|
CALL[1] = 0x8C
|
|
vec[4] = 0x32,0x30,0x36,0x30 (2060 in ASCII)
|
|
end[2] = 0x00,0x00
|
|
*/
|
|
unsigned char basic[] = {0x0B,0x08,0x01,0x00,0x8C,0x32,0x30,0x36,0x30,0x00,0x00};
|
|
|
|
/*
|
|
;autoload.s
|
|
|
|
org = $BF00 ; should be $BF00
|
|
cout = $FDED ; character out sub
|
|
crout = $FD8E ; CR out sub
|
|
prbyte = $FDDA
|
|
warm = $FF69 ; back to monitor
|
|
readblk = $FEFD
|
|
pointer = $06
|
|
endbas = $80C
|
|
;target = $1000
|
|
target = $801
|
|
chksum = $00
|
|
inflate = $BA00
|
|
inf_zp = $0
|
|
|
|
start:
|
|
.org endbas
|
|
move:
|
|
ldx #0
|
|
move1: lda moved,x
|
|
sta load,x
|
|
inx
|
|
bne move1 ; move 256 bytes
|
|
jmp load
|
|
moved:
|
|
.org org
|
|
load:
|
|
lda #<loadm
|
|
ldy #>loadm
|
|
jsr print
|
|
|
|
lda ld_beg
|
|
sta $3C ; starting tape address low
|
|
lda ld_beg+1
|
|
sta $3D ; starting tape address high
|
|
lda ld_end
|
|
sta $3E ; ending tape address low
|
|
lda ld_end+1
|
|
sta $3F ; ending tape address high
|
|
jsr readblk ; read block from tape
|
|
|
|
lda inf_flag ; if inf_flag = 0 runit
|
|
beq runit
|
|
inf:
|
|
jsr crout
|
|
lda #<infm
|
|
ldy #>infm
|
|
jsr print
|
|
|
|
lda inf_src ;src lsb
|
|
sta inf_zp+0
|
|
lda inf_src+1 ;src msb
|
|
sta inf_zp+1
|
|
lda inf_dst ;dst lsb
|
|
sta inf_zp+2
|
|
lda inf_dst+1 ;dst msb
|
|
sta inf_zp+3
|
|
|
|
jsr inflate
|
|
|
|
lda inf_end ;dst end +1 lsb
|
|
cmp inf_zp+2
|
|
bne error
|
|
lda inf_end+1 ;dst end +1 msb
|
|
cmp inf_zp+3
|
|
bne error
|
|
runit:
|
|
lda warm_flag ; if warm_flag = 1 warm boot
|
|
bne warmit
|
|
jmp (runcode)
|
|
warmit:
|
|
jmp warm ; run it
|
|
sumerror:
|
|
jsr crout
|
|
lda #<chkm
|
|
ldy #>chkm
|
|
jsr print
|
|
error:
|
|
lda #<errm
|
|
ldy #>errm
|
|
jsr print
|
|
jmp warm
|
|
print:
|
|
sta pointer
|
|
sty pointer+1
|
|
ldy #0
|
|
lda (pointer),y ; load initial char
|
|
print1: ora #$80
|
|
jsr cout
|
|
iny
|
|
lda (pointer),y
|
|
bne print1
|
|
rts
|
|
chkm: .asciiz "CHKSUM "
|
|
errm: .asciiz "ERROR"
|
|
infm: .asciiz "INFLATING "
|
|
ld_beg:
|
|
.org *+2
|
|
ld_end:
|
|
.org *+2
|
|
inf_src:
|
|
.org *+2
|
|
runcode:
|
|
inf_dst:
|
|
.org *+2
|
|
inf_end:
|
|
.org *+2
|
|
inf_flag:
|
|
.org *+1
|
|
warm_flag:
|
|
.org *+1
|
|
loadm:
|
|
;.asciiz "LOADING "
|
|
|
|
end:
|
|
|
|
*/
|
|
unsigned char autoloadcode[] = {
|
|
0xA2,0x00,0xBD,0x1A,
|
|
0x08,0x9D,0x00,0xBF,0xE8,0xD0,0xF7,0x4C,
|
|
0x00,0xBF,0xA9,0xA9,0xA0,0xBF,0x20,0x71,
|
|
0xBF,0xAD,0x9D,0xBF,0x85,0x3C,0xAD,0x9E,
|
|
0xBF,0x85,0x3D,0xAD,0x9F,0xBF,0x85,0x3E,
|
|
0xAD,0xA0,0xBF,0x85,0x3F,0x20,0xFD,0xFE,
|
|
0xAD,0xA7,0xBF,0xF0,0x2F,0x20,0x8E,0xFD,
|
|
0xA9,0x92,0xA0,0xBF,0x20,0x71,0xBF,0xAD,
|
|
0xA1,0xBF,0x85,0x00,0xAD,0xA2,0xBF,0x85,
|
|
0x01,0xAD,0xA3,0xBF,0x85,0x02,0xAD,0xA4,
|
|
0xBF,0x85,0x03,0x20,0x00,0xBA,0xAD,0xA5,
|
|
0xBF,0xC5,0x02,0xD0,0x1C,0xAD,0xA6,0xBF,
|
|
0xC5,0x03,0xD0,0x15,0xAD,0xA8,0xBF,0xD0,
|
|
0x03,0x6C,0xA3,0xBF,0x4C,0x69,0xFF,0x20,
|
|
0x8E,0xFD,0xA9,0x84,0xA0,0xBF,0x20,0x71,
|
|
0xBF,0xA9,0x8C,0xA0,0xBF,0x20,0x71,0xBF,
|
|
0x4C,0x69,0xFF,0x85,0x06,0x84,0x07,0xA0,
|
|
0x00,0xB1,0x06,0x09,0x80,0x20,0xED,0xFD,
|
|
0xC8,0xB1,0x06,0xD0,0xF6,0x60,0x43,0x48,
|
|
0x4B,0x53,0x55,0x4D,0x20,0x00,0x45,0x52,
|
|
0x52,0x4F,0x52,0x00,0x49,0x4E,0x46,0x4C,
|
|
0x41,0x54,0x49,0x4E,0x47,0x20,0x00
|
|
};
|
|
/*
|
|
; inflate - uncompress data stored in the DEFLATE format
|
|
; by Piotr Fusik <fox@scene.pl>
|
|
; Last modified: 2007-06-17
|
|
|
|
; Compile with xasm (http://xasm.atari.org/), for example:
|
|
; xasm inflate.asx /l /d:inflate=$b700 /d:inflate_data=$b900 /d:inflate_zp=$f0
|
|
; inflate is 509 bytes of code and initialized data
|
|
; inflate_data is 764 bytes of uninitialized data
|
|
; inflate_zp is 10 bytes on page zero
|
|
|
|
; hacked for apple ii and ca65 by Egan Ford <egan@sense.net>
|
|
; dates
|
|
|
|
; compile nodes
|
|
|
|
; changes
|
|
|
|
;EFF
|
|
.define equ =
|
|
|
|
inflate = $BA00
|
|
inflate_zp = $0
|
|
inflate_data = $BC00
|
|
|
|
; Pointer to compressed data
|
|
inputPointer equ inflate_zp ; 2 bytes
|
|
|
|
; Pointer to uncompressed data
|
|
outputPointer equ inflate_zp+2 ; 2 bytes
|
|
|
|
; Local variables
|
|
|
|
getBit_buffer equ inflate_zp+4 ; 1 byte
|
|
|
|
getBits_base equ inflate_zp+5 ; 1 byte
|
|
inflateStoredBlock_pageCounter equ inflate_zp+5 ; 1 byte
|
|
|
|
inflateCodes_sourcePointer equ inflate_zp+6 ; 2 bytes
|
|
inflateDynamicBlock_lengthIndex equ inflate_zp+6 ; 1 byte
|
|
inflateDynamicBlock_lastLength equ inflate_zp+7 ; 1 byte
|
|
inflateDynamicBlock_tempCodes equ inflate_zp+7 ; 1 byte
|
|
|
|
inflateCodes_lengthMinus2 equ inflate_zp+8 ; 1 byte
|
|
inflateDynamicBlock_allCodes equ inflate_zp+8 ; 1 byte
|
|
|
|
inflateCodes_primaryCodes equ inflate_zp+9 ; 1 byte
|
|
|
|
|
|
; Argument values for getBits
|
|
GET_1_BIT equ $81
|
|
GET_2_BITS equ $82
|
|
GET_3_BITS equ $84
|
|
GET_4_BITS equ $88
|
|
GET_5_BITS equ $90
|
|
GET_6_BITS equ $a0
|
|
GET_7_BITS equ $c0
|
|
|
|
; Maximum length of a Huffman code
|
|
MAX_CODE_LENGTH equ 15
|
|
|
|
; Huffman trees
|
|
TREE_SIZE equ MAX_CODE_LENGTH+1
|
|
PRIMARY_TREE equ 0
|
|
DISTANCE_TREE equ TREE_SIZE
|
|
|
|
; Alphabet
|
|
LENGTH_SYMBOLS equ 1+29+2
|
|
DISTANCE_SYMBOLS equ 30
|
|
CONTROL_SYMBOLS equ LENGTH_SYMBOLS+DISTANCE_SYMBOLS
|
|
TOTAL_SYMBOLS equ 256+CONTROL_SYMBOLS
|
|
|
|
; Optional (recommend for c2t or DOS)
|
|
; DOS header location and size LSB/MSB
|
|
; .byte <START,>START,<(END-START),>(END-START)
|
|
|
|
; Uncompress DEFLATE stream starting from the address stored in inputPointer
|
|
; to the memory starting from the address stored in outputPointer
|
|
;; org inflate
|
|
.org inflate
|
|
START:
|
|
;; mvy #0 getBit_buffer
|
|
LDY #0
|
|
STY getBit_buffer
|
|
|
|
|
|
inflate_blockLoop:
|
|
; Get a bit of EOF and two bits of block type
|
|
; ldy #0
|
|
sty getBits_base
|
|
lda #GET_3_BITS
|
|
jsr getBits
|
|
;; lsr @
|
|
lsr A
|
|
php
|
|
tax
|
|
bne inflateCompressedBlock
|
|
|
|
; Copy uncompressed block
|
|
; ldy #0
|
|
sty getBit_buffer
|
|
jsr getWord
|
|
jsr getWord
|
|
sta inflateStoredBlock_pageCounter
|
|
; jmp inflateStoredBlock_firstByte
|
|
bcs inflateStoredBlock_firstByte
|
|
inflateStoredBlock_copyByte:
|
|
jsr getByte
|
|
inflateStoreByte:
|
|
jsr storeByte
|
|
bcc inflateCodes_loop
|
|
inflateStoredBlock_firstByte:
|
|
inx
|
|
bne inflateStoredBlock_copyByte
|
|
inc inflateStoredBlock_pageCounter
|
|
bne inflateStoredBlock_copyByte
|
|
|
|
inflate_nextBlock:
|
|
plp
|
|
bcc inflate_blockLoop
|
|
rts
|
|
|
|
inflateCompressedBlock:
|
|
|
|
; Decompress a block with fixed Huffman trees
|
|
; :144 dta 8
|
|
; :112 dta 9
|
|
; :24 dta 7
|
|
; :6 dta 8
|
|
; :2 dta 8 ; codes with no meaning
|
|
; :30 dta 5+DISTANCE_TREE
|
|
; ldy #0
|
|
inflateFixedBlock_setCodeLengths:
|
|
lda #4
|
|
cpy #144
|
|
;; rol @
|
|
rol A
|
|
sta literalSymbolCodeLength,y
|
|
cpy #CONTROL_SYMBOLS
|
|
bcs inflateFixedBlock_noControlSymbol
|
|
lda #5+DISTANCE_TREE
|
|
cpy #LENGTH_SYMBOLS
|
|
bcs inflateFixedBlock_setControlCodeLength
|
|
cpy #24
|
|
adc #2-DISTANCE_TREE
|
|
inflateFixedBlock_setControlCodeLength:
|
|
sta controlSymbolCodeLength,y
|
|
inflateFixedBlock_noControlSymbol:
|
|
iny
|
|
bne inflateFixedBlock_setCodeLengths
|
|
; mva #LENGTH_SYMBOLS inflateCodes_primaryCodes
|
|
LDA #LENGTH_SYMBOLS
|
|
STA inflateCodes_primaryCodes
|
|
|
|
dex
|
|
beq inflateCodes
|
|
|
|
; Decompress a block reading Huffman trees first
|
|
|
|
; Build the tree for temporary codes
|
|
jsr buildTempHuffmanTree
|
|
|
|
; Use temporary codes to get lengths of literal/length and distance codes
|
|
ldx #0
|
|
; sec
|
|
inflateDynamicBlock_decodeLength:
|
|
php
|
|
stx inflateDynamicBlock_lengthIndex
|
|
; Fetch a temporary code
|
|
jsr fetchPrimaryCode
|
|
; Temporary code 0..15: put this length
|
|
tax
|
|
bpl inflateDynamicBlock_verbatimLength
|
|
; Temporary code 16: repeat last length 3 + getBits(2) times
|
|
; Temporary code 17: put zero length 3 + getBits(3) times
|
|
; Temporary code 18: put zero length 11 + getBits(7) times
|
|
jsr getBits
|
|
; sec
|
|
adc #1
|
|
cpx #GET_7_BITS
|
|
;; scc:adc #7
|
|
BCC S1
|
|
adc #7
|
|
S1:
|
|
tay
|
|
lda #0
|
|
cpx #GET_3_BITS
|
|
;; scs:lda inflateDynamicBlock_lastLength
|
|
BCS S2
|
|
lda inflateDynamicBlock_lastLength
|
|
S2:
|
|
inflateDynamicBlock_verbatimLength:
|
|
iny
|
|
ldx inflateDynamicBlock_lengthIndex
|
|
plp
|
|
inflateDynamicBlock_storeLength:
|
|
bcc inflateDynamicBlock_controlSymbolCodeLength
|
|
;; sta literalSymbolCodeLength,x+
|
|
sta literalSymbolCodeLength,x
|
|
INX
|
|
cpx #1
|
|
inflateDynamicBlock_storeNext:
|
|
dey
|
|
bne inflateDynamicBlock_storeLength
|
|
sta inflateDynamicBlock_lastLength
|
|
; jmp inflateDynamicBlock_decodeLength
|
|
beq inflateDynamicBlock_decodeLength
|
|
inflateDynamicBlock_controlSymbolCodeLength:
|
|
cpx inflateCodes_primaryCodes
|
|
;; scc:ora #DISTANCE_TREE
|
|
BCC S3
|
|
ora #DISTANCE_TREE
|
|
S3:
|
|
;; sta controlSymbolCodeLength,x+
|
|
sta controlSymbolCodeLength,x
|
|
INX
|
|
|
|
cpx inflateDynamicBlock_allCodes
|
|
bcc inflateDynamicBlock_storeNext
|
|
dey
|
|
; ldy #0
|
|
; jmp inflateCodes
|
|
|
|
; Decompress a block
|
|
inflateCodes:
|
|
jsr buildHuffmanTree
|
|
inflateCodes_loop:
|
|
jsr fetchPrimaryCode
|
|
bcc inflateStoreByte
|
|
tax
|
|
beq inflate_nextBlock
|
|
; Copy sequence from look-behind buffer
|
|
; ldy #0
|
|
sty getBits_base
|
|
cmp #9
|
|
bcc inflateCodes_setSequenceLength
|
|
tya
|
|
; lda #0
|
|
cpx #1+28
|
|
bcs inflateCodes_setSequenceLength
|
|
dex
|
|
txa
|
|
;; lsr @
|
|
lsr A
|
|
ror getBits_base
|
|
inc getBits_base
|
|
;; lsr @
|
|
lsr A
|
|
rol getBits_base
|
|
jsr getAMinus1BitsMax8
|
|
; sec
|
|
adc #0
|
|
inflateCodes_setSequenceLength:
|
|
sta inflateCodes_lengthMinus2
|
|
ldx #DISTANCE_TREE
|
|
jsr fetchCode
|
|
; sec
|
|
sbc inflateCodes_primaryCodes
|
|
tax
|
|
cmp #4
|
|
bcc inflateCodes_setOffsetLowByte
|
|
inc getBits_base
|
|
;; lsr @
|
|
lsr A
|
|
jsr getAMinus1BitsMax8
|
|
inflateCodes_setOffsetLowByte:
|
|
eor #$ff
|
|
sta inflateCodes_sourcePointer
|
|
lda getBits_base
|
|
cpx #10
|
|
bcc inflateCodes_setOffsetHighByte
|
|
lda getNPlus1Bits_mask-10,x
|
|
jsr getBits
|
|
clc
|
|
inflateCodes_setOffsetHighByte:
|
|
eor #$ff
|
|
; clc
|
|
adc outputPointer+1
|
|
sta inflateCodes_sourcePointer+1
|
|
jsr copyByte
|
|
jsr copyByte
|
|
inflateCodes_copyByte:
|
|
jsr copyByte
|
|
dec inflateCodes_lengthMinus2
|
|
bne inflateCodes_copyByte
|
|
; jmp inflateCodes_loop
|
|
beq inflateCodes_loop
|
|
|
|
buildTempHuffmanTree:
|
|
; ldy #0
|
|
tya
|
|
inflateDynamicBlock_clearCodeLengths:
|
|
sta literalSymbolCodeLength,y
|
|
sta literalSymbolCodeLength+TOTAL_SYMBOLS-256,y
|
|
iny
|
|
bne inflateDynamicBlock_clearCodeLengths
|
|
; numberOfPrimaryCodes = 257 + getBits(5)
|
|
; numberOfDistanceCodes = 1 + getBits(5)
|
|
; numberOfTemporaryCodes = 4 + getBits(4)
|
|
ldx #3
|
|
inflateDynamicBlock_getHeader:
|
|
lda inflateDynamicBlock_headerBits-1,x
|
|
jsr getBits
|
|
; sec
|
|
adc inflateDynamicBlock_headerBase-1,x
|
|
sta inflateDynamicBlock_tempCodes-1,x
|
|
sta inflateDynamicBlock_headerBase+1
|
|
dex
|
|
bne inflateDynamicBlock_getHeader
|
|
|
|
; Get lengths of temporary codes in the order stored in tempCodeLengthOrder
|
|
; ldx #0
|
|
inflateDynamicBlock_getTempCodeLengths:
|
|
lda #GET_3_BITS
|
|
jsr getBits
|
|
ldy tempCodeLengthOrder,x
|
|
sta literalSymbolCodeLength,y
|
|
ldy #0
|
|
inx
|
|
cpx inflateDynamicBlock_tempCodes
|
|
bcc inflateDynamicBlock_getTempCodeLengths
|
|
|
|
; Build Huffman trees basing on code lengths (in bits)
|
|
; stored in the *SymbolCodeLength arrays
|
|
buildHuffmanTree:
|
|
; Clear nBitCode_totalCount, nBitCode_literalCount, nBitCode_controlCount
|
|
tya
|
|
; lda #0
|
|
;; sta:rne nBitCode_clearFrom,y+
|
|
R1:
|
|
sta nBitCode_clearFrom,y
|
|
INY
|
|
BNE R1
|
|
; Count number of codes of each length
|
|
; ldy #0
|
|
buildHuffmanTree_countCodeLengths:
|
|
ldx literalSymbolCodeLength,y
|
|
inc nBitCode_literalCount,x
|
|
inc nBitCode_totalCount,x
|
|
cpy #CONTROL_SYMBOLS
|
|
bcs buildHuffmanTree_noControlSymbol
|
|
ldx controlSymbolCodeLength,y
|
|
inc nBitCode_controlCount,x
|
|
inc nBitCode_totalCount,x
|
|
buildHuffmanTree_noControlSymbol:
|
|
iny
|
|
bne buildHuffmanTree_countCodeLengths
|
|
; Calculate offsets of symbols sorted by code length
|
|
; lda #0
|
|
ldx #-3*TREE_SIZE
|
|
buildHuffmanTree_calculateOffsets:
|
|
sta nBitCode_literalOffset+3*TREE_SIZE-$100,x
|
|
;; add nBitCode_literalCount+3*TREE_SIZE-$100,x
|
|
CLC
|
|
ADC nBitCode_literalCount+3*TREE_SIZE-$100,x
|
|
inx
|
|
bne buildHuffmanTree_calculateOffsets
|
|
; Put symbols in their place in the sorted array
|
|
; ldy #0
|
|
buildHuffmanTree_assignCode:
|
|
tya
|
|
ldx literalSymbolCodeLength,y
|
|
;; ldy:inc nBitCode_literalOffset,x
|
|
ldy nBitCode_literalOffset,x
|
|
inc nBitCode_literalOffset,x
|
|
sta codeToLiteralSymbol,y
|
|
tay
|
|
cpy #CONTROL_SYMBOLS
|
|
bcs buildHuffmanTree_noControlSymbol2
|
|
ldx controlSymbolCodeLength,y
|
|
;; ldy:inc nBitCode_controlOffset,x
|
|
ldy nBitCode_controlOffset,x
|
|
inc nBitCode_controlOffset,x
|
|
sta codeToControlSymbol,y
|
|
tay
|
|
buildHuffmanTree_noControlSymbol2:
|
|
iny
|
|
bne buildHuffmanTree_assignCode
|
|
rts
|
|
|
|
; Read Huffman code using the primary tree
|
|
fetchPrimaryCode:
|
|
ldx #PRIMARY_TREE
|
|
; Read a code from input basing on the tree specified in X,
|
|
; return low byte of this code in A,
|
|
; return C flag reset for literal code, set for length code
|
|
fetchCode:
|
|
; ldy #0
|
|
tya
|
|
fetchCode_nextBit:
|
|
jsr getBit
|
|
;; rol @
|
|
rol A
|
|
inx
|
|
;; sub nBitCode_totalCount,x
|
|
SEC
|
|
SBC nBitCode_totalCount,x
|
|
bcs fetchCode_nextBit
|
|
; clc
|
|
adc nBitCode_controlCount,x
|
|
bcs fetchCode_control
|
|
; clc
|
|
adc nBitCode_literalOffset,x
|
|
tax
|
|
lda codeToLiteralSymbol,x
|
|
clc
|
|
rts
|
|
fetchCode_control:
|
|
;; add nBitCode_controlOffset-1,x
|
|
CLC
|
|
ADC nBitCode_controlOffset-1,x
|
|
tax
|
|
lda codeToControlSymbol,x
|
|
sec
|
|
rts
|
|
|
|
; Read A minus 1 bits, but no more than 8
|
|
getAMinus1BitsMax8:
|
|
rol getBits_base
|
|
tax
|
|
cmp #9
|
|
bcs getByte
|
|
lda getNPlus1Bits_mask-2,x
|
|
getBits:
|
|
jsr getBits_loop
|
|
getBits_normalizeLoop:
|
|
lsr getBits_base
|
|
;; ror @
|
|
ror A
|
|
bcc getBits_normalizeLoop
|
|
rts
|
|
|
|
; Read 16 bits
|
|
getWord:
|
|
jsr getByte
|
|
tax
|
|
; Read 8 bits
|
|
getByte:
|
|
lda #$80
|
|
getBits_loop:
|
|
jsr getBit
|
|
;; ror @
|
|
ror A
|
|
bcc getBits_loop
|
|
rts
|
|
|
|
; Read one bit, return in the C flag
|
|
getBit:
|
|
lsr getBit_buffer
|
|
bne getBit_return
|
|
pha
|
|
; ldy #0
|
|
lda (inputPointer),y
|
|
;; inw inputPointer
|
|
INC inputPointer
|
|
BNE S4
|
|
INC inputPointer+1
|
|
S4:
|
|
sec
|
|
;; ror @
|
|
ror A
|
|
sta getBit_buffer
|
|
pla
|
|
getBit_return:
|
|
rts
|
|
|
|
; Copy a previously written byte
|
|
copyByte:
|
|
ldy outputPointer
|
|
lda (inflateCodes_sourcePointer),y
|
|
ldy #0
|
|
; Write a byte
|
|
storeByte:
|
|
sta (outputPointer),y
|
|
inc outputPointer
|
|
bne storeByte_return
|
|
inc outputPointer+1
|
|
inc inflateCodes_sourcePointer+1
|
|
storeByte_return:
|
|
rts
|
|
|
|
getNPlus1Bits_mask:
|
|
.byte GET_1_BIT,GET_2_BITS,GET_3_BITS,GET_4_BITS,GET_5_BITS,GET_6_BITS,GET_7_BITS
|
|
|
|
tempCodeLengthOrder:
|
|
.byte GET_2_BITS,GET_3_BITS,GET_7_BITS,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15
|
|
|
|
inflateDynamicBlock_headerBits:
|
|
.byte GET_4_BITS,GET_5_BITS,GET_5_BITS
|
|
inflateDynamicBlock_headerBase:
|
|
.byte 3,0,0 ; second byte is modified at runtime!
|
|
|
|
.org inflate_data
|
|
|
|
; Data for building trees
|
|
|
|
literalSymbolCodeLength:
|
|
.org *+256
|
|
controlSymbolCodeLength:
|
|
.org *+CONTROL_SYMBOLS
|
|
|
|
; Huffman trees
|
|
|
|
nBitCode_clearFrom:
|
|
nBitCode_totalCount:
|
|
.org *+2*TREE_SIZE
|
|
nBitCode_literalCount:
|
|
.org *+TREE_SIZE
|
|
nBitCode_controlCount:
|
|
.org *+2*TREE_SIZE
|
|
nBitCode_literalOffset:
|
|
.org *+TREE_SIZE
|
|
nBitCode_controlOffset:
|
|
.org *+2*TREE_SIZE
|
|
|
|
codeToLiteralSymbol:
|
|
.org *+256
|
|
codeToControlSymbol:
|
|
.org *+CONTROL_SYMBOLS
|
|
|
|
END:
|
|
*/
|
|
unsigned char inflatecode[] = {
|
|
0xA0,0x00,0x84,0x04,0x84,0x05,0xA9,0x84,
|
|
0x20,0xA3,0xBB,0x4A,0x08,0xAA,0xD0,0x1F,
|
|
0x84,0x04,0x20,0xAC,0xBB,0x20,0xAC,0xBB,
|
|
0x85,0x05,0xB0,0x08,0x20,0xB0,0xBB,0x20,
|
|
0xD2,0xBB,0x90,0x75,0xE8,0xD0,0xF5,0xE6,
|
|
0x05,0xD0,0xF1,0x28,0x90,0xD6,0x60,0xA9,
|
|
0x04,0xC0,0x90,0x2A,0x99,0x00,0xBC,0xC0,
|
|
0x3E,0xB0,0x0D,0xA9,0x15,0xC0,0x20,0xB0,
|
|
0x04,0xC0,0x18,0x69,0xF2,0x99,0x00,0xBD,
|
|
0xC8,0xD0,0xE4,0xA9,0x20,0x85,0x09,0xCA,
|
|
0xF0,0x44,0x20,0xF5,0xBA,0xA2,0x00,0x08,
|
|
0x86,0x06,0x20,0x73,0xBB,0xAA,0x10,0x14,
|
|
0x20,0xA3,0xBB,0x69,0x01,0xE0,0xC0,0x90,
|
|
0x02,0x69,0x07,0xA8,0xA9,0x00,0xE0,0x84,
|
|
0xB0,0x02,0xA5,0x07,0xC8,0xA6,0x06,0x28,
|
|
0x90,0x0D,0x9D,0x00,0xBC,0xE8,0xE0,0x01,
|
|
0x88,0xD0,0xF5,0x85,0x07,0xF0,0xD0,0xE4,
|
|
0x09,0x90,0x02,0x09,0x10,0x9D,0x00,0xBD,
|
|
0xE8,0xE4,0x08,0x90,0xEB,0x88,0x20,0x24,
|
|
0xBB,0x20,0x73,0xBB,0x90,0x81,0xAA,0xF0,
|
|
0x8A,0x84,0x05,0xC9,0x09,0x90,0x14,0x98,
|
|
0xE0,0x1D,0xB0,0x0F,0xCA,0x8A,0x4A,0x66,
|
|
0x05,0xE6,0x05,0x4A,0x26,0x05,0x20,0x99,
|
|
0xBB,0x69,0x00,0x85,0x08,0xA2,0x10,0x20,
|
|
0x75,0xBB,0xE5,0x09,0xAA,0xC9,0x04,0x90,
|
|
0x06,0xE6,0x05,0x4A,0x20,0x99,0xBB,0x49,
|
|
0xFF,0x85,0x06,0xA5,0x05,0xE0,0x0A,0x90,
|
|
0x07,0xBD,0xD3,0xBB,0x20,0xA3,0xBB,0x18,
|
|
0x49,0xFF,0x65,0x03,0x85,0x07,0x20,0xCC,
|
|
0xBB,0x20,0xCC,0xBB,0x20,0xCC,0xBB,0xC6,
|
|
0x08,0xD0,0xF9,0xF0,0xA4,0x98,0x99,0x00,
|
|
0xBC,0x99,0x3E,0xBC,0xC8,0xD0,0xF7,0xA2,
|
|
0x03,0xBD,0xF6,0xBB,0x20,0xA3,0xBB,0x7D,
|
|
0xF9,0xBB,0x95,0x06,0x8D,0xFB,0xBB,0xCA,
|
|
0xD0,0xEF,0xA9,0x84,0x20,0xA3,0xBB,0xBC,
|
|
0xE4,0xBB,0x99,0x00,0xBC,0xA0,0x00,0xE8,
|
|
0xE4,0x07,0x90,0xEE,0x98,0x99,0x3E,0xBD,
|
|
0xC8,0xD0,0xFA,0xBE,0x00,0xBC,0xFE,0x5E,
|
|
0xBD,0xFE,0x3E,0xBD,0xC0,0x3E,0xB0,0x09,
|
|
0xBE,0x00,0xBD,0xFE,0x6E,0xBD,0xFE,0x3E,
|
|
0xBD,0xC8,0xD0,0xE7,0xA2,0xD0,0x9D,0xBE,
|
|
0xBC,0x18,0x7D,0x8E,0xBC,0xE8,0xD0,0xF6,
|
|
0x98,0xBE,0x00,0xBC,0xBC,0x8E,0xBD,0xFE,
|
|
0x8E,0xBD,0x99,0xBE,0xBD,0xA8,0xC0,0x3E,
|
|
0xB0,0x0D,0xBE,0x00,0xBD,0xBC,0x9E,0xBD,
|
|
0xFE,0x9E,0xBD,0x99,0xBE,0xBE,0xA8,0xC8,
|
|
0xD0,0xDE,0x60,0xA2,0x00,0x98,0x20,0xB9,
|
|
0xBB,0x2A,0xE8,0x38,0xFD,0x3E,0xBD,0xB0,
|
|
0xF5,0x7D,0x6E,0xBD,0xB0,0x09,0x7D,0x8E,
|
|
0xBD,0xAA,0xBD,0xBE,0xBD,0x18,0x60,0x18,
|
|
0x7D,0x9D,0xBD,0xAA,0xBD,0xBE,0xBE,0x38,
|
|
0x60,0x26,0x05,0xAA,0xC9,0x09,0xB0,0x10,
|
|
0xBD,0xDB,0xBB,0x20,0xB2,0xBB,0x46,0x05,
|
|
0x6A,0x90,0xFB,0x60,0x20,0xB0,0xBB,0xAA,
|
|
0xA9,0x80,0x20,0xB9,0xBB,0x6A,0x90,0xFA,
|
|
0x60,0x46,0x04,0xD0,0x0E,0x48,0xB1,0x00,
|
|
0xE6,0x00,0xD0,0x02,0xE6,0x01,0x38,0x6A,
|
|
0x85,0x04,0x68,0x60,0xA4,0x02,0xB1,0x06,
|
|
0xA0,0x00,0x91,0x02,0xE6,0x02,0xD0,0x04,
|
|
0xE6,0x03,0xE6,0x07,0x60,0x81,0x82,0x84,
|
|
0x88,0x90,0xA0,0xC0,0x82,0x84,0xC0,0x00,
|
|
0x08,0x07,0x09,0x06,0x0A,0x05,0x0B,0x04,
|
|
0x0C,0x03,0x0D,0x02,0x0E,0x01,0x0F,0x88,
|
|
0x90,0x90,0x03,0x00,0x00
|
|
};
|
|
/*
|
|
;fastload9600.s
|
|
|
|
org = $BE80 ; should be $BE80
|
|
cout = $FDED ; character out sub
|
|
crout = $FD8E ; CR out sub
|
|
prbyte = $FDDA
|
|
warm = $FF69 ; back to monitor
|
|
tapein = $C060
|
|
pointer = $06
|
|
endbas = $80C
|
|
;target = $1000
|
|
target = $801
|
|
chksum = $00
|
|
inflate = $BA00
|
|
inf_zp = $0
|
|
|
|
start:
|
|
.org endbas
|
|
move:
|
|
ldx #0
|
|
move1: lda moved,x
|
|
sta fast,x
|
|
inx
|
|
bne move1 ; move 256 bytes
|
|
; ldx #0
|
|
move2: lda moved+256,x
|
|
sta fast+256,x
|
|
inx
|
|
bpl move2 ; only 128 bytes to move
|
|
jmp fast
|
|
moved:
|
|
.org org
|
|
fast:
|
|
lda #<loadm
|
|
ldy #>loadm
|
|
jsr print
|
|
|
|
lda #$ff
|
|
sta chksum
|
|
|
|
lda ld_beg ; setup point to target
|
|
sta store+1
|
|
lda ld_beg+1
|
|
sta store+2
|
|
|
|
wait: bit tapein
|
|
bpl wait
|
|
waithi: bit tapein ; Wait for input to go high.
|
|
bmi waithi
|
|
pre: lda #1 ; Load sentinel bit
|
|
ldx #0 ; Clear data index
|
|
clc ; Clear carry (byte complete flag)
|
|
data: bcc waitlo ; Skip if byte not complete
|
|
store: sta store,x ; Store data byte
|
|
|
|
eor chksum
|
|
sta chksum
|
|
|
|
lda #1 ; Re-load sentinel bit
|
|
waitlo: bit tapein ; Wait for input to go low
|
|
bpl waitlo
|
|
bcc poll9 ; Poll at +9 cycles if no store
|
|
inx ; Stored, so increment data index
|
|
bne poll13 ; Poll at +13 cycles if no carry
|
|
inc store+2 ; Increment data page
|
|
bne poll21 ; (always) poll at +21 cycles
|
|
|
|
one: sec ; one bit detected
|
|
rol ; shift it into A
|
|
jmp data ; and go handle data (C = sentinel)
|
|
|
|
zero: clc ; zero bit detected
|
|
rol ; shift it into A
|
|
jmp data ; and go handle data (C = sentinel)
|
|
|
|
poll9: bit tapein
|
|
bpl zero ; zero bit (short)(9-15 cycles)
|
|
poll13: bit tapein ; (2 cycles early if branched here)
|
|
bpl zero ; zero bit (15-21 cycles)
|
|
poll21: bit tapein
|
|
bpl zero ; zero bit (21-27 cycles)
|
|
bit tapein
|
|
bpl zero ; zero bit (27-33 cycles)
|
|
bit tapein
|
|
bpl zero ; zero bit (33-39 cycles)
|
|
bit tapein
|
|
bpl zero ; zero bit (39-45 cycles)
|
|
bit tapein
|
|
bpl zero ; zero bit (45-51 cycles)
|
|
bit tapein
|
|
bpl zero ; zero bit (51-57 cycles)
|
|
bit tapein
|
|
bpl zero ; one bit (57-63 cycles)
|
|
bit tapein
|
|
bpl one ; one bit (63-69 cycles)
|
|
bit tapein
|
|
bpl one ; one bit (69-75 cycles)
|
|
bit tapein
|
|
bpl one ; one bit (75-81 cycles)
|
|
bit tapein
|
|
bpl one ; pre pulse (81-87 cycles)
|
|
bit tapein
|
|
bpl pre ; pre pulse (87-93 cycles)
|
|
bit tapein
|
|
bpl pre ; pre pulse (93-99 cycles)
|
|
bit tapein
|
|
bpl pre ; pre pulse (99-105 cycles)
|
|
|
|
endcode:
|
|
txa ; write end of file location + 1
|
|
clc
|
|
adc store+1
|
|
sta store+1
|
|
bcc endcheck
|
|
inc store+2
|
|
endcheck:
|
|
lda ld_end
|
|
cmp store+1
|
|
bne error
|
|
lda ld_end+1
|
|
cmp store+2
|
|
bne error
|
|
sumcheck:
|
|
lda chksum
|
|
bne sumerror
|
|
lda inf_flag ; if inf_flag = 0 runit
|
|
beq runit
|
|
inf:
|
|
jsr crout
|
|
lda #<infm
|
|
ldy #>infm
|
|
jsr print
|
|
|
|
lda inf_src ;src lsb
|
|
sta inf_zp+0
|
|
lda inf_src+1 ;src msb
|
|
sta inf_zp+1
|
|
lda inf_dst ;dst lsb
|
|
sta inf_zp+2
|
|
lda inf_dst+1 ;dst msb
|
|
sta inf_zp+3
|
|
|
|
jsr inflate
|
|
|
|
lda inf_end ;dst end +1 lsb
|
|
cmp inf_zp+2
|
|
bne error
|
|
lda inf_end+1 ;dst end +1 msb
|
|
cmp inf_zp+3
|
|
bne error
|
|
runit:
|
|
lda warm_flag ; if warm_flag = 1 warm boot
|
|
bne warmit
|
|
jmp (runcode)
|
|
warmit:
|
|
jmp warm ; run it
|
|
sumerror:
|
|
jsr crout
|
|
lda #<chkm
|
|
ldy #>chkm
|
|
jsr print
|
|
error:
|
|
lda #<errm
|
|
ldy #>errm
|
|
jsr print
|
|
jmp warm
|
|
print:
|
|
sta pointer
|
|
sty pointer+1
|
|
ldy #0
|
|
lda (pointer),y ; load initial char
|
|
print1: ora #$80
|
|
jsr cout
|
|
iny
|
|
lda (pointer),y
|
|
bne print1
|
|
rts
|
|
chkm: .asciiz "CHKSUM "
|
|
errm: .asciiz "ERROR"
|
|
infm: .asciiz "INFLATING "
|
|
ld_beg:
|
|
.org *+2
|
|
ld_end:
|
|
.org *+2
|
|
inf_src:
|
|
.org *+2
|
|
runcode:
|
|
inf_dst:
|
|
.org *+2
|
|
inf_end:
|
|
.org *+2
|
|
inf_flag:
|
|
.org *+1
|
|
warm_flag:
|
|
.org *+1
|
|
loadm:
|
|
;.asciiz "LOADING "
|
|
|
|
end:
|
|
|
|
*/
|
|
unsigned char fastload9600[] = {
|
|
0xA2,0x00,0xBD,0x23,
|
|
0x08,0x9D,0x80,0xBE,0xE8,0xD0,0xF7,0xBD,
|
|
0x23,0x09,0x9D,0x80,0xBF,0xE8,0x10,0xF7,
|
|
0x4C,0x80,0xBE,0xA9,0xC6,0xA0,0xBF,0x20,
|
|
0x8E,0xBF,0xA9,0xFF,0x85,0x00,0xAD,0xBA,
|
|
0xBF,0x8D,0xA9,0xBE,0xAD,0xBB,0xBF,0x8D,
|
|
0xAA,0xBE,0x2C,0x60,0xC0,0x10,0xFB,0x2C,
|
|
0x60,0xC0,0x30,0xFB,0xA9,0x01,0xA2,0x00,
|
|
0x18,0x90,0x09,0x9D,0xA8,0xBE,0x45,0x00,
|
|
0x85,0x00,0xA9,0x01,0x2C,0x60,0xC0,0x10,
|
|
0xFB,0x90,0x12,0xE8,0xD0,0x14,0xEE,0xAA,
|
|
0xBE,0xD0,0x14,0x38,0x2A,0x4C,0xA6,0xBE,
|
|
0x18,0x2A,0x4C,0xA6,0xBE,0x2C,0x60,0xC0,
|
|
0x10,0xF6,0x2C,0x60,0xC0,0x10,0xF1,0x2C,
|
|
0x60,0xC0,0x10,0xEC,0x2C,0x60,0xC0,0x10,
|
|
0xE7,0x2C,0x60,0xC0,0x10,0xE2,0x2C,0x60,
|
|
0xC0,0x10,0xDD,0x2C,0x60,0xC0,0x10,0xD8,
|
|
0x2C,0x60,0xC0,0x10,0xD3,0x2C,0x60,0xC0,
|
|
0x10,0xCE,0x2C,0x60,0xC0,0x10,0xC4,0x2C,
|
|
0x60,0xC0,0x10,0xBF,0x2C,0x60,0xC0,0x10,
|
|
0xBA,0x2C,0x60,0xC0,0x10,0xB5,0x2C,0x60,
|
|
0xC0,0x10,0x91,0x2C,0x60,0xC0,0x10,0x8C,
|
|
0x2C,0x60,0xC0,0x10,0x87,0x8A,0x18,0x6D,
|
|
0xA9,0xBE,0x8D,0xA9,0xBE,0x90,0x03,0xEE,
|
|
0xAA,0xBE,0xAD,0xBC,0xBF,0xCD,0xA9,0xBE,
|
|
0xD0,0x55,0xAD,0xBD,0xBF,0xCD,0xAA,0xBE,
|
|
0xD0,0x4D,0xA5,0x00,0xD0,0x3F,0xAD,0xC4,
|
|
0xBF,0xF0,0x2F,0x20,0x8E,0xFD,0xA9,0xAF,
|
|
0xA0,0xBF,0x20,0x8E,0xBF,0xAD,0xBE,0xBF,
|
|
0x85,0x00,0xAD,0xBF,0xBF,0x85,0x01,0xAD,
|
|
0xC0,0xBF,0x85,0x02,0xAD,0xC1,0xBF,0x85,
|
|
0x03,0x20,0x00,0xBA,0xAD,0xC2,0xBF,0xC5,
|
|
0x02,0xD0,0x1C,0xAD,0xC3,0xBF,0xC5,0x03,
|
|
0xD0,0x15,0xAD,0xC5,0xBF,0xD0,0x03,0x6C,
|
|
0xC0,0xBF,0x4C,0x69,0xFF,0x20,0x8E,0xFD,
|
|
0xA9,0xA1,0xA0,0xBF,0x20,0x8E,0xBF,0xA9,
|
|
0xA9,0xA0,0xBF,0x20,0x8E,0xBF,0x4C,0x69,
|
|
0xFF,0x85,0x06,0x84,0x07,0xA0,0x00,0xB1,
|
|
0x06,0x09,0x80,0x20,0xED,0xFD,0xC8,0xB1,
|
|
0x06,0xD0,0xF6,0x60,0x43,0x48,0x4B,0x53,
|
|
0x55,0x4D,0x20,0x00,0x45,0x52,0x52,0x4F,
|
|
0x52,0x00,0x49,0x4E,0x46,0x4C,0x41,0x54,
|
|
0x49,0x4E,0x47,0x20,0x00
|
|
};
|
|
/*
|
|
;fastload8000.s
|
|
|
|
org = $BE80 ; should be $BE80
|
|
cout = $FDED ; character out sub
|
|
crout = $FD8E ; CR out sub
|
|
prbyte = $FDDA
|
|
warm = $FF69 ; back to monitor
|
|
tapein = $C060
|
|
pointer = $06
|
|
endbas = $80C
|
|
;target = $1000
|
|
target = $801
|
|
chksum = $00
|
|
inflate = $BA00
|
|
inf_zp = $0
|
|
|
|
start:
|
|
.org endbas
|
|
move:
|
|
ldx #0
|
|
move1: lda moved,x
|
|
sta fast,x
|
|
inx
|
|
bne move1 ; move 256 bytes
|
|
; ldx #0
|
|
move2: lda moved+256,x
|
|
sta fast+256,x
|
|
inx
|
|
bpl move2 ; only 128 bytes to move
|
|
jmp fast
|
|
moved:
|
|
.org org
|
|
fast:
|
|
lda #<loadm
|
|
ldy #>loadm
|
|
jsr print
|
|
|
|
lda ld_beg ; load begin LSB location
|
|
sta store+1 ; store it
|
|
lda ld_beg+1 ; load begin MSB location
|
|
sta store+2 ; store it
|
|
|
|
ldx #0 ; set X to 0
|
|
lda #1 ; set A to 0
|
|
|
|
nsync: bit tapein ; 4 cycles, sync bit ; first pulse
|
|
bpl nsync ; 2 + 1 cycles
|
|
|
|
main: ldy #0 ; 2 set Y to 0
|
|
|
|
psync: bit tapein ;
|
|
bmi psync
|
|
|
|
ploop: iny ; 2 cycles
|
|
bit tapein ; 4 cycles
|
|
bpl ploop ; 2 +1 if branch, +1 if in another page
|
|
; total ~9 cycles
|
|
|
|
cpy #$40 ; 2 cycles if Y - $40 > 0 endcode (770Hz)
|
|
bpl endcode ; 2(3)
|
|
|
|
cpy #$15 ; 2 cycles if Y - $15 > 0 main (2000Hz)
|
|
bpl main ; 2(3)
|
|
|
|
cpy #$07 ; 2, if Y<, then clear carry, if Y>= set carry
|
|
store: rol store+1,x ; 7, roll carry bit into store
|
|
ldy #0 ; 2
|
|
asl ; 2 A*=2
|
|
bne main ; 2(3)
|
|
lda #1 ; 2
|
|
inx ; 2 cycles
|
|
bne main ; 2(3)
|
|
inc store+2 ; 6 cycles
|
|
jmp main ; 3 cycles
|
|
; 34 subtotal max
|
|
; 36 subtotal max
|
|
endcode:
|
|
txa ; write end of file location + 1
|
|
clc
|
|
adc store+1
|
|
sta store+1
|
|
bcc endcheck ; LSB didn't roll over to zero
|
|
inc store+2 ; did roll over to zero, inc MSB
|
|
endcheck: ; check for match of expected length
|
|
lda ld_end
|
|
cmp store+1
|
|
bne error
|
|
lda ld_end+1
|
|
cmp store+2
|
|
bne error
|
|
sumcheck:
|
|
lda #0
|
|
sta pointer
|
|
lda ld_beg+1
|
|
sta pointer+1
|
|
lda #$ff ; init checksum
|
|
ldy ld_beg
|
|
sumloop:
|
|
eor (pointer),y
|
|
|
|
;last page?
|
|
|
|
ldx pointer+1
|
|
cpx ld_end+1
|
|
beq last
|
|
iny
|
|
bne sumloop
|
|
inc pointer+1
|
|
bne sumloop
|
|
last:
|
|
iny
|
|
cpy ld_end
|
|
bcc sumloop
|
|
|
|
; sty $01
|
|
sta chksum
|
|
lda chksum
|
|
bne sumerror
|
|
|
|
lda inf_flag ; if inf_flag = 0 runit
|
|
beq runit
|
|
inf:
|
|
jsr crout
|
|
lda #<infm
|
|
ldy #>infm
|
|
jsr print
|
|
|
|
lda inf_src ;src lsb
|
|
sta inf_zp+0
|
|
lda inf_src+1 ;src msb
|
|
sta inf_zp+1
|
|
lda inf_dst ;dst lsb
|
|
sta inf_zp+2
|
|
lda inf_dst+1 ;dst msb
|
|
sta inf_zp+3
|
|
|
|
jsr inflate
|
|
|
|
lda inf_end ;dst end +1 lsb
|
|
cmp inf_zp+2
|
|
bne error
|
|
lda inf_end+1 ;dst end +1 msb
|
|
cmp inf_zp+3
|
|
bne error
|
|
runit:
|
|
lda warm_flag ; if warm_flag = 1 warm boot
|
|
bne warmit
|
|
jmp (runcode)
|
|
warmit:
|
|
jmp warm ; run it
|
|
sumerror:
|
|
jsr crout
|
|
lda #<chkm
|
|
ldy #>chkm
|
|
jsr print
|
|
error:
|
|
lda #<errm
|
|
ldy #>errm
|
|
jsr print
|
|
jmp warm
|
|
print:
|
|
sta pointer
|
|
sty pointer+1
|
|
ldy #0
|
|
lda (pointer),y ; load initial char
|
|
print1: ora #$80
|
|
jsr cout
|
|
iny
|
|
lda (pointer),y
|
|
bne print1
|
|
rts
|
|
chkm: .asciiz "CHKSUM "
|
|
errm: .asciiz "ERROR"
|
|
infm: .asciiz "INFLATING "
|
|
ld_beg:
|
|
.org *+2
|
|
ld_end:
|
|
.org *+2
|
|
inf_src:
|
|
.org *+2
|
|
runcode:
|
|
inf_dst:
|
|
.org *+2
|
|
inf_end:
|
|
.org *+2
|
|
inf_flag:
|
|
.org *+1
|
|
warm_flag:
|
|
.org *+1
|
|
loadm:
|
|
;.asciiz "LOADING "
|
|
|
|
end:
|
|
|
|
*/
|
|
unsigned char fastload8000[] = {
|
|
0xA2,0x00,0xBD,0x23,
|
|
0x08,0x9D,0x80,0xBE,0xE8,0xD0,0xF7,0xBD,
|
|
0x23,0x09,0x9D,0x80,0xBF,0xE8,0x10,0xF7,
|
|
0x4C,0x80,0xBE,0xA9,0x98,0xA0,0xBF,0x20,
|
|
0x60,0xBF,0xAD,0x8C,0xBF,0x8D,0xB4,0xBE,
|
|
0xAD,0x8D,0xBF,0x8D,0xB5,0xBE,0xA2,0x00,
|
|
0xA9,0x01,0x2C,0x60,0xC0,0x10,0xFB,0xA0,
|
|
0x00,0x2C,0x60,0xC0,0x30,0xFB,0xC8,0x2C,
|
|
0x60,0xC0,0x10,0xFA,0xC0,0x40,0x10,0x19,
|
|
0xC0,0x15,0x10,0xEB,0xC0,0x07,0x3E,0xB4,
|
|
0xBE,0xA0,0x00,0x0A,0xD0,0xE1,0xA9,0x01,
|
|
0xE8,0xD0,0xDC,0xEE,0xB5,0xBE,0x4C,0x9C,
|
|
0xBE,0x8A,0x18,0x6D,0xB4,0xBE,0x8D,0xB4,
|
|
0xBE,0x90,0x03,0xEE,0xB5,0xBE,0xAD,0x8E,
|
|
0xBF,0xCD,0xB4,0xBE,0xD0,0x7B,0xAD,0x8F,
|
|
0xBF,0xCD,0xB5,0xBE,0xD0,0x73,0xA9,0x00,
|
|
0x85,0x06,0xAD,0x8D,0xBF,0x85,0x07,0xA9,
|
|
0xFF,0xAC,0x8C,0xBF,0x51,0x06,0xA6,0x07,
|
|
0xEC,0x8F,0xBF,0xF0,0x07,0xC8,0xD0,0xF4,
|
|
0xE6,0x07,0xD0,0xF0,0xC8,0xCC,0x8E,0xBF,
|
|
0x90,0xEA,0x85,0x00,0xA5,0x00,0xD0,0x3F,
|
|
0xAD,0x96,0xBF,0xF0,0x2F,0x20,0x8E,0xFD,
|
|
0xA9,0x81,0xA0,0xBF,0x20,0x60,0xBF,0xAD,
|
|
0x90,0xBF,0x85,0x00,0xAD,0x91,0xBF,0x85,
|
|
0x01,0xAD,0x92,0xBF,0x85,0x02,0xAD,0x93,
|
|
0xBF,0x85,0x03,0x20,0x00,0xBA,0xAD,0x94,
|
|
0xBF,0xC5,0x02,0xD0,0x1C,0xAD,0x95,0xBF,
|
|
0xC5,0x03,0xD0,0x15,0xAD,0x97,0xBF,0xD0,
|
|
0x03,0x6C,0x92,0xBF,0x4C,0x69,0xFF,0x20,
|
|
0x8E,0xFD,0xA9,0x73,0xA0,0xBF,0x20,0x60,
|
|
0xBF,0xA9,0x7B,0xA0,0xBF,0x20,0x60,0xBF,
|
|
0x4C,0x69,0xFF,0x85,0x06,0x84,0x07,0xA0,
|
|
0x00,0xB1,0x06,0x09,0x80,0x20,0xED,0xFD,
|
|
0xC8,0xB1,0x06,0xD0,0xF6,0x60,0x43,0x48,
|
|
0x4B,0x53,0x55,0x4D,0x20,0x00,0x45,0x52,
|
|
0x52,0x4F,0x52,0x00,0x49,0x4E,0x46,0x4C,
|
|
0x41,0x54,0x49,0x4E,0x47,0x20,0x00
|
|
};
|
|
/*
|
|
;fastloadcd.s
|
|
|
|
org = $BE80 ; should be $BE80
|
|
cout = $FDED ; character out sub
|
|
crout = $FD8E ; CR out sub
|
|
prbyte = $FDDA
|
|
warm = $FF69 ; back to monitor
|
|
tapein = $C060
|
|
pointer = $06
|
|
endbas = $80C
|
|
;target = $1000
|
|
target = $801
|
|
chksum = $00
|
|
inflate = $BA00
|
|
inf_zp = $0
|
|
|
|
start:
|
|
.org endbas
|
|
move:
|
|
ldx #0
|
|
move1: lda moved,x
|
|
sta fast,x
|
|
inx
|
|
bne move1 ; move 256 bytes
|
|
; ldx #0
|
|
move2: lda moved+256,x
|
|
sta fast+256,x
|
|
inx
|
|
bpl move2 ; only 128 bytes to move
|
|
jmp fast
|
|
moved:
|
|
.org org
|
|
fast:
|
|
lda #<loadm
|
|
ldy #>loadm
|
|
jsr print
|
|
|
|
lda #$ff
|
|
sta chksum
|
|
|
|
lda ld_beg ; setup point to target
|
|
sta store+1
|
|
lda ld_beg+1
|
|
sta store+2
|
|
|
|
wait: bit tapein
|
|
bpl wait
|
|
waithi: bit tapein ; Wait for input to go high.
|
|
bmi waithi
|
|
pre: lda #1 ; Load sentinel bit
|
|
ldx #0 ; Clear data index
|
|
clc ; Clear carry (byte complete flag)
|
|
data: bcc waitlo ; Skip if byte not complete
|
|
store: sta store,x ; Store data byte
|
|
|
|
eor chksum
|
|
sta chksum
|
|
|
|
lda #1 ; Re-load sentinel bit
|
|
waitlo: bit tapein ; Wait for input to go low
|
|
bpl waitlo
|
|
bcc poll9 ; Poll at +9 cycles if no store
|
|
inx ; Stored, so increment data index
|
|
bne poll13 ; Poll at +13 cycles if no carry
|
|
inc store+2 ; Increment data page
|
|
bne poll21 ; (always) poll at +21 cycles
|
|
|
|
one: sec ; one bit detected
|
|
rol ; shift it into A
|
|
jmp data ; and go handle data (C = sentinel)
|
|
|
|
zero: clc ; zero bit detected
|
|
rol ; shift it into A
|
|
jmp data ; and go handle data (C = sentinel)
|
|
|
|
poll9: bit tapein
|
|
bpl zero ; zero bit (short)(9-15 cycles)
|
|
poll13: bit tapein ; (2 cycles early if branched here)
|
|
bpl zero ; zero bit (15-21 cycles)
|
|
poll21: bit tapein
|
|
bpl zero ; zero bit (21-27 cycles)
|
|
bit tapein
|
|
bpl zero ; zero bit (27-33 cycles)
|
|
bit tapein
|
|
bpl zero ; zero bit (33-39 cycles)
|
|
bit tapein
|
|
bpl zero ; zero bit (39-45 cycles)
|
|
bit tapein
|
|
bpl zero ; zero bit (45-51 cycles)
|
|
bit tapein
|
|
bpl zero ; zero bit (51-57 cycles)
|
|
bit tapein
|
|
bpl zero ; one bit (57-63 cycles)
|
|
bit tapein
|
|
bpl one ; one bit (63-69 cycles)
|
|
bit tapein
|
|
bpl one ; one bit (69-75 cycles)
|
|
bit tapein
|
|
bpl one ; one bit (75-81 cycles)
|
|
bit tapein
|
|
bpl one ; one pulse (81-87 cycles)
|
|
bit tapein
|
|
bpl one ; one pulse (87-93 cycles)
|
|
bit tapein
|
|
bpl pre ; pre pulse (93-99 cycles)
|
|
bit tapein
|
|
bpl pre ; pre pulse (99-105 cycles)
|
|
bit tapein
|
|
bpl pre ; pre pulse (99-111 cycles)
|
|
|
|
endcode:
|
|
txa ; write end of file location + 1
|
|
clc
|
|
adc store+1
|
|
sta store+1
|
|
bcc endcheck
|
|
inc store+2
|
|
endcheck:
|
|
lda ld_end
|
|
cmp store+1
|
|
bne error
|
|
lda ld_end+1
|
|
cmp store+2
|
|
bne error
|
|
sumcheck:
|
|
lda chksum
|
|
bne sumerror
|
|
lda inf_flag ; if inf_flag = 0 runit
|
|
beq runit
|
|
inf:
|
|
jsr crout
|
|
lda #<infm
|
|
ldy #>infm
|
|
jsr print
|
|
|
|
lda inf_src ;src lsb
|
|
sta inf_zp+0
|
|
lda inf_src+1 ;src msb
|
|
sta inf_zp+1
|
|
lda inf_dst ;dst lsb
|
|
sta inf_zp+2
|
|
lda inf_dst+1 ;dst msb
|
|
sta inf_zp+3
|
|
|
|
jsr inflate
|
|
|
|
lda inf_end ;dst end +1 lsb
|
|
cmp inf_zp+2
|
|
bne error
|
|
lda inf_end+1 ;dst end +1 msb
|
|
cmp inf_zp+3
|
|
bne error
|
|
runit:
|
|
lda warm_flag ; if warm_flag = 1 warm boot
|
|
bne warmit
|
|
jmp (runcode)
|
|
warmit:
|
|
jmp warm ; run it
|
|
sumerror:
|
|
jsr crout
|
|
lda #<chkm
|
|
ldy #>chkm
|
|
jsr print
|
|
error:
|
|
lda #<errm
|
|
ldy #>errm
|
|
jsr print
|
|
jmp warm
|
|
print:
|
|
sta pointer
|
|
sty pointer+1
|
|
ldy #0
|
|
lda (pointer),y ; load initial char
|
|
print1: ora #$80
|
|
jsr cout
|
|
iny
|
|
lda (pointer),y
|
|
bne print1
|
|
rts
|
|
chkm: .asciiz "CHKSUM "
|
|
errm: .asciiz "ERROR"
|
|
infm: .asciiz "INFLATING "
|
|
ld_beg:
|
|
.org *+2
|
|
ld_end:
|
|
.org *+2
|
|
inf_src:
|
|
.org *+2
|
|
runcode:
|
|
inf_dst:
|
|
.org *+2
|
|
inf_end:
|
|
.org *+2
|
|
inf_flag:
|
|
.org *+1
|
|
warm_flag:
|
|
.org *+1
|
|
loadm:
|
|
;.asciiz "LOADING "
|
|
|
|
end:
|
|
|
|
*/
|
|
unsigned char fastloadcd[] = {
|
|
0xA2,0x00,0xBD,0x23,
|
|
0x08,0x9D,0x80,0xBE,0xE8,0xD0,0xF7,0xBD,
|
|
0x23,0x09,0x9D,0x80,0xBF,0xE8,0x10,0xF7,
|
|
0x4C,0x80,0xBE,0xA9,0xCB,0xA0,0xBF,0x20,
|
|
0x93,0xBF,0xA9,0xFF,0x85,0x00,0xAD,0xBF,
|
|
0xBF,0x8D,0xA9,0xBE,0xAD,0xC0,0xBF,0x8D,
|
|
0xAA,0xBE,0x2C,0x60,0xC0,0x10,0xFB,0x2C,
|
|
0x60,0xC0,0x30,0xFB,0xA9,0x01,0xA2,0x00,
|
|
0x18,0x90,0x09,0x9D,0xA8,0xBE,0x45,0x00,
|
|
0x85,0x00,0xA9,0x01,0x2C,0x60,0xC0,0x10,
|
|
0xFB,0x90,0x12,0xE8,0xD0,0x14,0xEE,0xAA,
|
|
0xBE,0xD0,0x14,0x38,0x2A,0x4C,0xA6,0xBE,
|
|
0x18,0x2A,0x4C,0xA6,0xBE,0x2C,0x60,0xC0,
|
|
0x10,0xF6,0x2C,0x60,0xC0,0x10,0xF1,0x2C,
|
|
0x60,0xC0,0x10,0xEC,0x2C,0x60,0xC0,0x10,
|
|
0xE7,0x2C,0x60,0xC0,0x10,0xE2,0x2C,0x60,
|
|
0xC0,0x10,0xDD,0x2C,0x60,0xC0,0x10,0xD8,
|
|
0x2C,0x60,0xC0,0x10,0xD3,0x2C,0x60,0xC0,
|
|
0x10,0xCE,0x2C,0x60,0xC0,0x10,0xC4,0x2C,
|
|
0x60,0xC0,0x10,0xBF,0x2C,0x60,0xC0,0x10,
|
|
0xBA,0x2C,0x60,0xC0,0x10,0xB5,0x2C,0x60,
|
|
0xC0,0x10,0xB0,0x2C,0x60,0xC0,0x10,0x8C,
|
|
0x2C,0x60,0xC0,0x10,0x87,0x2C,0x60,0xC0,
|
|
0x10,0x82,0x8A,0x18,0x6D,0xA9,0xBE,0x8D,
|
|
0xA9,0xBE,0x90,0x03,0xEE,0xAA,0xBE,0xAD,
|
|
0xC1,0xBF,0xCD,0xA9,0xBE,0xD0,0x55,0xAD,
|
|
0xC2,0xBF,0xCD,0xAA,0xBE,0xD0,0x4D,0xA5,
|
|
0x00,0xD0,0x3F,0xAD,0xC9,0xBF,0xF0,0x2F,
|
|
0x20,0x8E,0xFD,0xA9,0xB4,0xA0,0xBF,0x20,
|
|
0x93,0xBF,0xAD,0xC3,0xBF,0x85,0x00,0xAD,
|
|
0xC4,0xBF,0x85,0x01,0xAD,0xC5,0xBF,0x85,
|
|
0x02,0xAD,0xC6,0xBF,0x85,0x03,0x20,0x00,
|
|
0xBA,0xAD,0xC7,0xBF,0xC5,0x02,0xD0,0x1C,
|
|
0xAD,0xC8,0xBF,0xC5,0x03,0xD0,0x15,0xAD,
|
|
0xCA,0xBF,0xD0,0x03,0x6C,0xC5,0xBF,0x4C,
|
|
0x69,0xFF,0x20,0x8E,0xFD,0xA9,0xA6,0xA0,
|
|
0xBF,0x20,0x93,0xBF,0xA9,0xAE,0xA0,0xBF,
|
|
0x20,0x93,0xBF,0x4C,0x69,0xFF,0x85,0x06,
|
|
0x84,0x07,0xA0,0x00,0xB1,0x06,0x09,0x80,
|
|
0x20,0xED,0xFD,0xC8,0xB1,0x06,0xD0,0xF6,
|
|
0x60,0x43,0x48,0x4B,0x53,0x55,0x4D,0x20,
|
|
0x00,0x45,0x52,0x52,0x4F,0x52,0x00,0x49,
|
|
0x4E,0x46,0x4C,0x41,0x54,0x49,0x4E,0x47,
|
|
0x20,0x00
|
|
};
|
|
/*
|
|
;diskload9600.s
|
|
|
|
org = $9000 ; should be $9000
|
|
cout = $FDED ; character out sub
|
|
crout = $FD8E ; CR out sub
|
|
prbyte = $FDDA ; print byte in hex
|
|
tapein = $C060 ; read tape interface
|
|
warm = $FF69 ; back to monitor
|
|
clear = $FC58 ; clear screen
|
|
endbas = $80C
|
|
target = $1000
|
|
|
|
; zero page parameters
|
|
|
|
begload = $00 ; begin load location LSB/MSB
|
|
endload = $02 ; end load location LSB/MSB
|
|
chksum = $04 ; checksum location
|
|
pointer = $0C ; LSB/MSB pointer
|
|
|
|
start:
|
|
.org endbas
|
|
move: ; end of BASIC, move code to readtape addr
|
|
ldx #0
|
|
move1:
|
|
lda moved,x
|
|
sta readtape,x
|
|
; lda moved+256,x
|
|
; sta readtape+256,x
|
|
inx
|
|
bne move1
|
|
phase1:
|
|
jsr crout ; print LOADING...
|
|
lda #<loadm
|
|
ldy #>loadm
|
|
jsr print
|
|
; diskload2 ORG
|
|
lda #$D0 ; store begin location LSB
|
|
sta begload
|
|
lda #$96 ; store begin location MSB
|
|
sta begload+1
|
|
; end of DOS + 1 for comparison
|
|
lda #$00 ; store end location LSB
|
|
sta endload
|
|
lda #$C0 ; store end location MSB
|
|
sta endload+1
|
|
|
|
jsr readtape ; get the code
|
|
jmp $9700 ; run it
|
|
loadm:
|
|
.byte "LOADING INSTA-DISK, ETA "
|
|
loadsec: ; 10 bytes for "XX SEC. ",$00
|
|
.byte 0,0,0,0,0,0,0,0,0,0
|
|
moved:
|
|
.org org ; $9000
|
|
readtape:
|
|
lda begload ; load begin LSB location
|
|
sta store+1 ; store it
|
|
lda begload+1 ; load begin MSB location
|
|
sta store+2 ; store it
|
|
|
|
lda #$ff ; init checksum
|
|
sta chksum
|
|
|
|
wait: bit tapein
|
|
bpl wait
|
|
waithi: bit tapein ; Wait for input to go high.
|
|
bmi waithi
|
|
pre: lda #1 ; Load sentinel bit
|
|
ldx #0 ; Clear data index
|
|
clc ; Clear carry (byte complete flag)
|
|
data: bcc waitlo ; Skip if byte not complete
|
|
store: sta target,x ; Store data byte
|
|
|
|
eor chksum ; compute checksum
|
|
sta chksum ; store checksum
|
|
|
|
lda #1 ; Re-load sentinel bit
|
|
waitlo: bit tapein ; Wait for input to go low
|
|
bpl waitlo
|
|
bcc poll9 ; Poll at +9 cycles if no store
|
|
inx ; Stored, so increment data index
|
|
bne poll13 ; Poll at +13 cycles if no carry
|
|
inc store+2 ; Increment data page
|
|
bne poll21 ; (always) poll at +21 cycles
|
|
|
|
one: sec ; one bit detected
|
|
rol ; shift it into A
|
|
jmp data ; and go handle data (C = sentinel)
|
|
|
|
zero: clc ; zero bit detected
|
|
rol ; shift it into A
|
|
jmp data ; and go handle data (C = sentinel)
|
|
|
|
poll9: bit tapein
|
|
bpl zero ; zero bit (short)(9-15 cycles)
|
|
poll13: bit tapein ; (2 cycles early if branched here)
|
|
bpl zero ; zero bit (15-21 cycles)
|
|
poll21: bit tapein
|
|
bpl zero ; zero bit (21-27 cycles)
|
|
bit tapein
|
|
bpl zero ; zero bit (27-33 cycles)
|
|
bit tapein
|
|
bpl zero ; zero bit (33-39 cycles)
|
|
bit tapein
|
|
bpl zero ; zero bit (39-45 cycles)
|
|
bit tapein
|
|
bpl zero ; zero bit (45-51 cycles)
|
|
bit tapein
|
|
bpl zero ; zero bit (51-57 cycles)
|
|
bit tapein
|
|
bpl zero ; one bit (57-63 cycles)
|
|
bit tapein
|
|
bpl one ; one bit (63-69 cycles)
|
|
bit tapein
|
|
bpl one ; one bit (69-75 cycles)
|
|
bit tapein
|
|
bpl one ; one bit (75-81 cycles)
|
|
bit tapein
|
|
bpl one ; one pulse (81-87 cycles)
|
|
bit tapein
|
|
bpl pre ; pre pulse (87-93 cycles)
|
|
bit tapein
|
|
bpl pre ; pre pulse (93-99 cycles)
|
|
bit tapein
|
|
bpl pre ; pre pulse (99-105 cycles)
|
|
|
|
; low freq signals end of data
|
|
endcode:
|
|
txa ; write end of file location + 1
|
|
clc
|
|
adc store+1
|
|
sta store+1
|
|
bcc endcheck ; LSB didn't roll over to zero
|
|
inc store+2 ; did roll over to zero, inc MSB
|
|
endcheck: ; check for match of expected length
|
|
lda endload
|
|
cmp store+1
|
|
bne error
|
|
lda endload+1
|
|
cmp store+2
|
|
bne error
|
|
jsr ok
|
|
sumcheck:
|
|
jsr crout
|
|
lda #<chkm
|
|
ldy #>chkm
|
|
jsr print
|
|
lda chksum
|
|
bne error
|
|
jmp ok ; return to caller
|
|
error:
|
|
lda #<errm
|
|
ldy #>errm
|
|
jsr print
|
|
jmp warm
|
|
ok:
|
|
lda #<okm
|
|
ldy #>okm
|
|
print:
|
|
sta pointer
|
|
sty pointer+1
|
|
ldy #0
|
|
lda (pointer),y ; load initial char
|
|
print1: ora #$80
|
|
jsr cout
|
|
iny
|
|
lda (pointer),y
|
|
bne print1
|
|
rts
|
|
|
|
chkm: .asciiz "CHKSUM "
|
|
okm: .asciiz "OK"
|
|
errm: .asciiz "ERROR"
|
|
end:
|
|
*/
|
|
unsigned char diskload9600[] = {
|
|
0xA2,0x00,0xBD,0x59,
|
|
0x08,0x9D,0x00,0x90,0xE8,0xD0,0xF7,0x20,
|
|
0x8E,0xFD,0xA9,0x37,0xA0,0x08,0x20,0xCE,
|
|
0x90,0xA9,0xD0,0x85,0x00,0xA9,0x96,0x85,
|
|
0x01,0xA9,0x00,0x85,0x02,0xA9,0xC0,0x85,
|
|
0x03,0x20,0x00,0x90,0x4C,0x00,0x97,0x4C,
|
|
0x4F,0x41,0x44,0x49,0x4E,0x47,0x20,0x49,
|
|
0x4E,0x53,0x54,0x41,0x2D,0x44,0x49,0x53,
|
|
0x4B,0x2C,0x20,0x45,0x54,0x41,0x20,0x00,
|
|
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
|
|
0x00,0xA5,0x00,0x8D,0x20,0x90,0xA5,0x01,
|
|
0x8D,0x21,0x90,0xA9,0xFF,0x85,0x04,0x2C,
|
|
0x60,0xC0,0x10,0xFB,0x2C,0x60,0xC0,0x30,
|
|
0xFB,0xA9,0x01,0xA2,0x00,0x18,0x90,0x09,
|
|
0x9D,0x00,0x10,0x45,0x04,0x85,0x04,0xA9,
|
|
0x01,0x2C,0x60,0xC0,0x10,0xFB,0x90,0x12,
|
|
0xE8,0xD0,0x14,0xEE,0x21,0x90,0xD0,0x14,
|
|
0x38,0x2A,0x4C,0x1D,0x90,0x18,0x2A,0x4C,
|
|
0x1D,0x90,0x2C,0x60,0xC0,0x10,0xF6,0x2C,
|
|
0x60,0xC0,0x10,0xF1,0x2C,0x60,0xC0,0x10,
|
|
0xEC,0x2C,0x60,0xC0,0x10,0xE7,0x2C,0x60,
|
|
0xC0,0x10,0xE2,0x2C,0x60,0xC0,0x10,0xDD,
|
|
0x2C,0x60,0xC0,0x10,0xD8,0x2C,0x60,0xC0,
|
|
0x10,0xD3,0x2C,0x60,0xC0,0x10,0xCE,0x2C,
|
|
0x60,0xC0,0x10,0xC4,0x2C,0x60,0xC0,0x10,
|
|
0xBF,0x2C,0x60,0xC0,0x10,0xBA,0x2C,0x60,
|
|
0xC0,0x10,0xB5,0x2C,0x60,0xC0,0x10,0x91,
|
|
0x2C,0x60,0xC0,0x10,0x8C,0x2C,0x60,0xC0,
|
|
0x10,0x87,0x8A,0x18,0x6D,0x20,0x90,0x8D,
|
|
0x20,0x90,0x90,0x03,0xEE,0x21,0x90,0xA5,
|
|
0x02,0xCD,0x20,0x90,0xD0,0x1B,0xA5,0x03,
|
|
0xCD,0x21,0x90,0xD0,0x14,0x20,0xCA,0x90,
|
|
0x20,0x8E,0xFD,0xA9,0xE1,0xA0,0x90,0x20,
|
|
0xCE,0x90,0xA5,0x04,0xD0,0x03,0x4C,0xCA,
|
|
0x90,0xA9,0xEC,0xA0,0x90,0x20,0xCE,0x90,
|
|
0x4C,0x69,0xFF,0xA9,0xE9,0xA0,0x90,0x85,
|
|
0x0C,0x84,0x0D,0xA0,0x00,0xB1,0x0C,0x09,
|
|
0x80,0x20,0xED,0xFD,0xC8,0xB1,0x0C,0xD0,
|
|
0xF6,0x60,0x43,0x48,0x4B,0x53,0x55,0x4D,
|
|
0x20,0x00,0x4F,0x4B,0x00,0x45,0x52,0x52,
|
|
0x4F,0x52,0x00
|
|
};
|
|
/*
|
|
;diskload8000.s
|
|
|
|
org = $9000 ; should be $9000
|
|
cout = $FDED ; character out sub
|
|
crout = $FD8E ; CR out sub
|
|
prbyte = $FDDA ; print byte in hex
|
|
tapein = $C060 ; read tape interface
|
|
warm = $FF69 ; back to monitor
|
|
clear = $FC58 ; clear screen
|
|
endbas = $80C
|
|
target = $1000
|
|
|
|
; zero page parameters
|
|
|
|
begload = $00 ; begin load location LSB/MSB
|
|
endload = $02 ; end load location LSB/MSB
|
|
chksum = $04 ; checksum location
|
|
pointer = $0C ; LSB/MSB pointer
|
|
|
|
start:
|
|
.org endbas
|
|
move: ; end of BASIC, move code to readtape addr
|
|
ldx #0
|
|
move1:
|
|
lda moved,x
|
|
sta readtape,x
|
|
; lda moved+256,x
|
|
; sta readtape+256,x
|
|
inx
|
|
bne move1
|
|
phase1:
|
|
jsr crout ; print LOADING...
|
|
lda #<loadm
|
|
ldy #>loadm
|
|
jsr print
|
|
; diskload2 ORG
|
|
lda #$D0 ; store begin location LSB
|
|
sta begload
|
|
lda #$96 ; store begin location MSB
|
|
sta begload+1
|
|
; end of DOS + 1 for comparison
|
|
lda #$00 ; store end location LSB
|
|
sta endload
|
|
lda #$C0 ; store end location MSB
|
|
sta endload+1
|
|
|
|
jsr readtape ; get the code
|
|
jmp $9700 ; run it
|
|
loadm:
|
|
.byte "LOADING INSTA-DISK, ETA "
|
|
loadsec: ; 10 bytes for "XX SEC. ",$00
|
|
.byte 0,0,0,0,0,0,0,0,0,0
|
|
moved:
|
|
.org org ; $9000
|
|
readtape:
|
|
lda begload ; load begin LSB location
|
|
sta store+1 ; store it
|
|
lda begload+1 ; load begin MSB location
|
|
sta store+2 ; store it
|
|
|
|
ldx #0 ; set X to 0
|
|
lda #1 ; set A to 0
|
|
|
|
nsync: bit tapein ; 4 cycles, sync bit ; first pulse
|
|
bpl nsync ; 2 + 1 cycles
|
|
|
|
main: ldy #0 ; 2 set Y to 0
|
|
|
|
psync: bit tapein ;
|
|
bmi psync
|
|
|
|
ploop: iny ; 2 cycles
|
|
bit tapein ; 4 cycles
|
|
bpl ploop ; 2 +1 if branch, +1 if in another page
|
|
; total ~9 cycles
|
|
|
|
cpy #$40 ; 2 cycles if Y - $40 > 0 endcode (770Hz)
|
|
bpl endcode ; 2(3)
|
|
|
|
cpy #$15 ; 2 cycles if Y - $15 > 0 main (2000Hz)
|
|
bpl main ; 2(3)
|
|
|
|
cpy #$07 ; 2, if Y<, then clear carry, if Y>= set carry
|
|
store: rol store+1,x ; 7, roll carry bit into store
|
|
ldy #0 ; 2
|
|
asl ; 2 A*=2
|
|
bne main ; 2(3)
|
|
lda #1 ; 2
|
|
inx ; 2 cycles
|
|
bne main ; 2(3)
|
|
inc store+2 ; 6 cycles
|
|
jmp main ; 3 cycles
|
|
; 34 subtotal max
|
|
; 36 subtotal max
|
|
endcode:
|
|
txa ; write end of file location + 1
|
|
clc
|
|
adc store+1
|
|
sta store+1
|
|
bcc endcheck ; LSB didn't roll over to zero
|
|
inc store+2 ; did roll over to zero, inc MSB
|
|
endcheck: ; check for match of expected length
|
|
lda endload
|
|
cmp store+1
|
|
bne error
|
|
lda endload+1
|
|
cmp store+2
|
|
bne error
|
|
jsr ok
|
|
sumcheck:
|
|
jsr crout
|
|
lda #<chkm
|
|
ldy #>chkm
|
|
jsr print
|
|
|
|
lda #0
|
|
sta pointer
|
|
lda begload+1
|
|
sta pointer+1
|
|
lda #$ff ; init checksum
|
|
ldy begload
|
|
sumloop:
|
|
eor (pointer),y
|
|
|
|
;last page?
|
|
|
|
ldx pointer+1
|
|
cpx endload+1
|
|
beq last
|
|
iny
|
|
bne sumloop
|
|
inc pointer+1
|
|
bne sumloop
|
|
last:
|
|
iny
|
|
cpy endload
|
|
bcc sumloop
|
|
|
|
ldy #0
|
|
eor (endload),y
|
|
; sta chksum
|
|
; lda chksum
|
|
bne error
|
|
jmp ok ; return to caller
|
|
error:
|
|
lda #<errm
|
|
ldy #>errm
|
|
jsr print
|
|
jmp warm
|
|
ok:
|
|
lda #<okm
|
|
ldy #>okm
|
|
print:
|
|
sta pointer
|
|
sty pointer+1
|
|
ldy #0
|
|
lda (pointer),y ; load initial char
|
|
print1: ora #$80
|
|
jsr cout
|
|
iny
|
|
lda (pointer),y
|
|
bne print1
|
|
rts
|
|
|
|
chkm: .asciiz "CHKSUM "
|
|
okm: .asciiz "OK"
|
|
errm: .asciiz "ERROR"
|
|
end:
|
|
*/
|
|
unsigned char diskload8000[] = {
|
|
0xA2,0x00,0xBD,0x59,
|
|
0x08,0x9D,0x00,0x90,0xE8,0xD0,0xF7,0x20,
|
|
0x8E,0xFD,0xA9,0x37,0xA0,0x08,0x20,0x9C,
|
|
0x90,0xA9,0xD0,0x85,0x00,0xA9,0x96,0x85,
|
|
0x01,0xA9,0x00,0x85,0x02,0xA9,0xC0,0x85,
|
|
0x03,0x20,0x00,0x90,0x4C,0x00,0x97,0x4C,
|
|
0x4F,0x41,0x44,0x49,0x4E,0x47,0x20,0x49,
|
|
0x4E,0x53,0x54,0x41,0x2D,0x44,0x49,0x53,
|
|
0x4B,0x2C,0x20,0x45,0x54,0x41,0x20,0x00,
|
|
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
|
|
0x00,0xA5,0x00,0x8D,0x2B,0x90,0xA5,0x01,
|
|
0x8D,0x2C,0x90,0xA2,0x00,0xA9,0x01,0x2C,
|
|
0x60,0xC0,0x10,0xFB,0xA0,0x00,0x2C,0x60,
|
|
0xC0,0x30,0xFB,0xC8,0x2C,0x60,0xC0,0x10,
|
|
0xFA,0xC0,0x40,0x10,0x19,0xC0,0x15,0x10,
|
|
0xEB,0xC0,0x07,0x3E,0x2B,0x90,0xA0,0x00,
|
|
0x0A,0xD0,0xE1,0xA9,0x01,0xE8,0xD0,0xDC,
|
|
0xEE,0x2C,0x90,0x4C,0x13,0x90,0x8A,0x18,
|
|
0x6D,0x2B,0x90,0x8D,0x2B,0x90,0x90,0x03,
|
|
0xEE,0x2C,0x90,0xA5,0x02,0xCD,0x2B,0x90,
|
|
0xD0,0x3D,0xA5,0x03,0xCD,0x2C,0x90,0xD0,
|
|
0x36,0x20,0x98,0x90,0x20,0x8E,0xFD,0xA9,
|
|
0xAF,0xA0,0x90,0x20,0x9C,0x90,0xA9,0x00,
|
|
0x85,0x0C,0xA5,0x01,0x85,0x0D,0xA9,0xFF,
|
|
0xA4,0x00,0x51,0x0C,0xA6,0x0D,0xE4,0x03,
|
|
0xF0,0x07,0xC8,0xD0,0xF5,0xE6,0x0D,0xD0,
|
|
0xF1,0xC8,0xC4,0x02,0x90,0xEC,0xA0,0x00,
|
|
0x51,0x02,0xD0,0x03,0x4C,0x98,0x90,0xA9,
|
|
0xBA,0xA0,0x90,0x20,0x9C,0x90,0x4C,0x69,
|
|
0xFF,0xA9,0xB7,0xA0,0x90,0x85,0x0C,0x84,
|
|
0x0D,0xA0,0x00,0xB1,0x0C,0x09,0x80,0x20,
|
|
0xED,0xFD,0xC8,0xB1,0x0C,0xD0,0xF6,0x60,
|
|
0x43,0x48,0x4B,0x53,0x55,0x4D,0x20,0x00,
|
|
0x4F,0x4B,0x00,0x45,0x52,0x52,0x4F,0x52,
|
|
0x00
|
|
};
|
|
/*
|
|
;diskload2.s
|
|
|
|
; apple vectors
|
|
|
|
cout = $FDED ; character out sub
|
|
crout = $FD8E ; CR out sub
|
|
prbyte = $FDDA ; print byte in hex
|
|
tapein = $C060 ; read tape interface
|
|
warm = $FF69 ; back to monitor
|
|
clear = $FC58 ; clear screen
|
|
movecur = $FB5B ; move cursor to ch,a
|
|
dos = $9D84
|
|
asrom = $9D72
|
|
locrpl = $3E3 ; locate RWTS paramlist jsr
|
|
rwts = $3D9 ; RWTS jsr
|
|
cleos = $FC42 ; clear to end of screen
|
|
init = $A54F
|
|
motoroff= $C088 ; Turn drive motor off
|
|
motoron = $C089 ; Turn drive motor on
|
|
reboot = $FAA6 ; reboot machine
|
|
bell = $FBDD ; ding
|
|
rdkey = $FD0C ; read key
|
|
|
|
; my vectors
|
|
|
|
;print = $90CE ; from diskload.s
|
|
readtape= $9000
|
|
inflate = $9B00
|
|
|
|
; zero page parameters
|
|
|
|
begload = $00 ; begin load location LSB/MSB
|
|
endload = $02 ; end load location LSB/MSB
|
|
chksum = $04 ; checksum location
|
|
secnum = $05 ; loop var
|
|
trknum = $06 ; loop var
|
|
segcnt = $07 ; loop var
|
|
buffer = $08 ; MSB of RWTS buffer
|
|
trkcnt = $09 ; track counter (0-6)
|
|
pointer = $0A ; pointer LSB/MSB
|
|
prtptr = $0C ; pointer LSB/MSB
|
|
fmptr = $0E ; file manager pointer
|
|
inf_zp = $10 ; inflate vars (10)
|
|
temp = $1E ; temp var
|
|
ch = $24 ; cursor horizontal
|
|
preg = $48 ; mon p reg
|
|
|
|
; other vars
|
|
|
|
org = $9700 ; should be $9700
|
|
invsp = $60 ; inverse space for draw
|
|
data = $1000 ; 7 track dump from inflate
|
|
boot1o = $96D0 ; tape loaded boot 1 location
|
|
boot1 = $3D0 ; target boot 1 location
|
|
cmpbuf = $9200 ; buffer for sector check
|
|
count = $900
|
|
|
|
.org org
|
|
|
|
ldx #0 ; move 9cd0 to 3d0
|
|
move1:
|
|
lda boot1o,x
|
|
sta boot1,x
|
|
inx
|
|
cpx #$48
|
|
bne move1 ; branch on positive (0-127)
|
|
patch:
|
|
lda #$B3 ; hack since chksum could not be written to C000
|
|
sta $BFFF ; chksum was written do BFFF
|
|
start:
|
|
jsr clear ; clear screen
|
|
lda #<title ; print title
|
|
ldy #>title
|
|
jsr inv
|
|
; TRACK
|
|
lda #19 ; col 20
|
|
sta ch
|
|
lda #0 ; row 0
|
|
jsr movecur
|
|
lda #<track ; print track
|
|
ldy #>track
|
|
jsr print
|
|
|
|
lda #<header ; print header
|
|
ldy #>header
|
|
jsr print
|
|
ldx #35 ; length of line
|
|
jsr line
|
|
|
|
lda #<left ; print left side of grid
|
|
ldy #>left
|
|
jsr print
|
|
|
|
setupiob:
|
|
jsr locrpl ; locate rwts paramlist
|
|
sty pointer ; and save pointer
|
|
sta pointer+1
|
|
|
|
lda #1 ; table type
|
|
ldy #0 ; offset in RWTS
|
|
sta (pointer),y ; write it to RWTS
|
|
|
|
lda #6 * 16 ; slot 6
|
|
ldy #1 ; offset in RWTS
|
|
sta (pointer),y ; write it to RWTS
|
|
|
|
lda #1 ; drive number
|
|
ldy #2 ; offset in RWTS
|
|
sta (pointer),y ; write it to RWTS
|
|
|
|
lda #254 ; volume number
|
|
ldy #3 ; offset in RWTS
|
|
sta (pointer),y ; write it to RWTS
|
|
|
|
format: ; format the diskette
|
|
lda infdata+20 ; check noformat flag
|
|
bne endformat ; if not 0 jump to endformat
|
|
|
|
jsr status
|
|
lda #<formatm ; print formatting
|
|
ldy #>formatm
|
|
jsr print
|
|
|
|
;;; RWTS format (issues)
|
|
; lda #4 ; format(4) command
|
|
; ldy #$0C ; offset in RWTS
|
|
; sta (pointer),y ; write it to RWTS
|
|
|
|
; jsr locrpl ; locate rwts paramlist
|
|
; jsr rwts ; do it!
|
|
; bcs formaterror
|
|
; lda #0
|
|
; sta preg ; fix p reg so mon is happy
|
|
; jmp endformat
|
|
|
|
;;; file manager format (works!)
|
|
jsr $3DC ; load up Y and A
|
|
sty fmptr
|
|
sta fmptr+1
|
|
|
|
lda #$0B ; init command
|
|
ldy #0
|
|
sta (fmptr),y
|
|
|
|
lda #$9D ; DOS location
|
|
ldy #1
|
|
sta (fmptr),y
|
|
|
|
lda #254 ; volume number
|
|
ldy #4
|
|
sta (fmptr),y
|
|
|
|
lda #$01 ; drive number
|
|
ldy #5
|
|
sta (fmptr),y
|
|
|
|
lda #$06 ; slot number
|
|
ldy #6
|
|
sta (fmptr),y
|
|
|
|
lda #$00 ; scratch area LSB
|
|
ldy #$0C
|
|
sta (fmptr),y
|
|
|
|
lda #$92 ; scratch area MSB
|
|
ldy #$0D
|
|
sta (fmptr),y
|
|
|
|
jsr $3D6 ; doit!
|
|
|
|
ldy #$0A ; return code
|
|
lda (fmptr),y
|
|
beq endformat
|
|
formaterror:
|
|
jmp diskerror
|
|
endformat:
|
|
|
|
;;;begin segment loop (5)
|
|
lda #0 ; 256 bytes/sector
|
|
ldy #$0b ; offset in RWTS
|
|
sta (pointer),y ; write it to RWTS
|
|
|
|
lda #0 ; buffer LSB
|
|
ldy #8 ; offset in RWTS
|
|
sta (pointer),y ; write it to RWTS
|
|
|
|
lda #0
|
|
sta trknum ; start with track 0
|
|
lda #5
|
|
sta segcnt
|
|
segloop:
|
|
|
|
;;; fancy status here
|
|
; jsr status
|
|
; lda #<waitm ; print waiting for data
|
|
; ldy #>waitm
|
|
; jsr print
|
|
;countdown:
|
|
; lda #<count ; store begin location LSB
|
|
; sta begload
|
|
; lda #>count ; store begin location MSB
|
|
; sta begload+1
|
|
; lda #<count+4 ; store end location LSB
|
|
; sta endload
|
|
; lda #>count ; store end location MSB
|
|
; sta endload+1
|
|
;;;; hack readtape, fix later, POC for now
|
|
; lda #$60 ; return without check
|
|
; sta $9091
|
|
; jsr readtape ; get the code
|
|
; lda #$8A ; put TXA back
|
|
; sta $9091
|
|
;;;; end hack
|
|
; lda #18
|
|
; sta $24 ; horiz
|
|
; lda #22 ; vert
|
|
; jsr movecur ; move cursor to $24,a; 0 base
|
|
; jsr cleos
|
|
; lda #<count ; print count down
|
|
; ldy #>count
|
|
; jsr print
|
|
; lda count
|
|
; cmp #$B0
|
|
; bne countdown
|
|
; lda count+1
|
|
; cmp #$B0
|
|
; bne countdown
|
|
;;; end fancy stuff
|
|
|
|
;;; get 7 tracks from tape
|
|
load:
|
|
jsr status
|
|
lda #<loadm ; print loading data
|
|
ldy #>loadm
|
|
jsr flash
|
|
lda #<loadm2 ; print loading data
|
|
ldy #>loadm2
|
|
jsr print
|
|
|
|
sec
|
|
lda #5
|
|
sbc segcnt
|
|
asl
|
|
asl
|
|
tax
|
|
stx temp
|
|
|
|
lda infdata+2,x ; get sec
|
|
jsr cout
|
|
lda infdata+3,x ; get sec
|
|
beq second
|
|
jsr cout
|
|
second:
|
|
lda #<secm ; print sec
|
|
ldy #>secm
|
|
jsr print
|
|
|
|
ldx temp
|
|
lda infdata+0,x ; store begin location LSB
|
|
sta begload
|
|
lda infdata+1,x ; store begin location MSB
|
|
sta begload+1
|
|
|
|
lda #$00 ; store end location LSB
|
|
sta endload
|
|
lda #$90 ; store end location MSB
|
|
sta endload+1
|
|
|
|
jsr readtape ; get the code
|
|
inf:
|
|
; turn motor on to save 1-2 sec
|
|
ldx #$60 ; slot #6
|
|
lda motoron,x ; turn it on
|
|
|
|
jsr status
|
|
lda #<inflatem ; print inflating
|
|
ldy #>inflatem
|
|
jsr print
|
|
|
|
ldx temp
|
|
lda infdata+0,x ;src lsb
|
|
sta inf_zp+0
|
|
lda infdata+1,x ;src msb
|
|
sta inf_zp+1
|
|
lda #<data ;dst lsb
|
|
sta inf_zp+2
|
|
lda #>data ;dst msb
|
|
sta inf_zp+3
|
|
|
|
jsr inflate
|
|
|
|
lda #$00 ;dst end +1 lsb
|
|
cmp inf_zp+2
|
|
bne error
|
|
lda #$80 ;dst end +1 msb
|
|
cmp inf_zp+3
|
|
bne error
|
|
|
|
;;;begin track loop (7)
|
|
jsr status
|
|
lda #<writem ; print writing
|
|
ldy #>writem
|
|
jsr print
|
|
|
|
lda #>data
|
|
sta buffer
|
|
lda #7
|
|
sta trkcnt ; do 7 tracks/segment
|
|
trkloop:
|
|
lda trknum ; track number
|
|
ldy #4 ; offset in RWTS
|
|
sta (pointer),y ; write it to RWTS
|
|
|
|
; lda #0 ; seek(0) command
|
|
; ldy #$0C ; offset in RWTS
|
|
; sta (pointer),y ; write it to RWTS
|
|
|
|
; jsr locrpl ; locate rwts paramlist
|
|
; jsr rwts ; do it!
|
|
; bcs diskerror
|
|
|
|
;;;begin sector loop (16), backwards is faster, much faster
|
|
lda #$F
|
|
sta secnum
|
|
secloop:
|
|
;jsr draw_w ; write sector from buffer to disk
|
|
jsr draw_s ; write sector from buffer to disk
|
|
lda secnum ; sector number
|
|
ldy #5 ; offset in RWTS
|
|
sta (pointer),y ; write it to RWTS
|
|
|
|
lda buffer ; buffer MSB
|
|
clc
|
|
adc secnum
|
|
ldy #9 ; offset in RWTS
|
|
sta (pointer),y ; write it to RWTS
|
|
|
|
lda #2 ; read(1)/write(2) command
|
|
ldy #$0C ; offset in RWTS
|
|
sta (pointer),y ; write it to RWTS
|
|
|
|
jsr locrpl ; locate rwts paramlist
|
|
jsr rwts ; do it!
|
|
bcs diskerror
|
|
lda #0
|
|
sta preg ; fix p reg so mon is happy
|
|
|
|
;jsr draw_r ; read sector from disk to compare addr
|
|
;lda #>cmpbuf ; compare MSB
|
|
;ldy #9 ; offset in RWTS
|
|
;sta (pointer),y ; write it to RWTS
|
|
|
|
;lda #1 ; read(1)/write(2) command
|
|
;ldy #$0C ; offset in RWTS
|
|
;sta (pointer),y ; write it to RWTS
|
|
|
|
;jsr locrpl ; locate rwts paramlist
|
|
;jsr rwts ; do it!
|
|
;bcs diskerror
|
|
;lda #0
|
|
;sta preg ; fix p reg so mon is happy
|
|
|
|
;;; compare code
|
|
|
|
;jsr draw_s ; draw a space in the grid if OK
|
|
|
|
dec secnum
|
|
bpl secloop
|
|
;;;end sector loop
|
|
|
|
lda buffer ; buffer += $10
|
|
clc
|
|
adc #$10
|
|
sta buffer
|
|
|
|
inc trknum ; next track
|
|
dec trkcnt ;
|
|
bne trkloop ; 0, all done with 7 tracks
|
|
;;;end track loop
|
|
|
|
dec segcnt ;
|
|
beq done ; 0, all done with 5 segments
|
|
jmp segloop
|
|
;;;end segment loop
|
|
|
|
;;; prompt for data only load?
|
|
done:
|
|
jsr status
|
|
lda #<donem ; print done
|
|
ldy #>donem
|
|
jsr print
|
|
jsr bell
|
|
jsr rdkey
|
|
jmp reboot
|
|
error:
|
|
; turn motor off, just in case left on
|
|
ldx #$60 ; slot #6
|
|
lda motoroff,x ; turn it off
|
|
|
|
lda #<errorm ; print error
|
|
ldy #>errorm
|
|
jsr print
|
|
jmp warm
|
|
diskerror:
|
|
lda #0
|
|
sta preg ; fix p reg so mon is happy
|
|
jsr status
|
|
lda #<diskerrorm ; print error
|
|
ldy #>diskerrorm
|
|
jsr print
|
|
jmp warm
|
|
status:
|
|
lda #0
|
|
sta $24 ; horiz
|
|
lda #22 ; vert
|
|
jsr movecur ; move cursor to $24,a; 0 base
|
|
jmp cleos
|
|
draw_w: ; print a 'W' in the grid
|
|
clc
|
|
lda #4
|
|
adc secnum
|
|
tay
|
|
lda #4
|
|
adc trknum
|
|
ldx #'W'
|
|
jmp draw
|
|
draw_r: ; print a 'R' in the grid
|
|
clc
|
|
lda #4
|
|
adc secnum
|
|
tay
|
|
lda #4
|
|
adc trknum
|
|
ldx #'R'
|
|
jmp draw
|
|
draw_s: ; print a ' ' in the grid
|
|
clc
|
|
lda #4
|
|
adc secnum
|
|
tay
|
|
lda #4
|
|
adc trknum
|
|
ldx #invsp
|
|
draw: ; a=horiz, y=vert, x=letter
|
|
sta $24 ; horiz
|
|
tya
|
|
jsr movecur
|
|
txa
|
|
eor #$40
|
|
jsr cout
|
|
rts
|
|
line:
|
|
lda #'-'
|
|
ora #$80
|
|
loop0:
|
|
jsr cout
|
|
dex
|
|
bne loop0
|
|
jsr crout
|
|
rts
|
|
inv:
|
|
sta prtptr
|
|
sty prtptr+1
|
|
ldy #0
|
|
lda (prtptr),y ; load initial char
|
|
inv1: and #$3F
|
|
jsr cout
|
|
iny
|
|
lda (prtptr),y
|
|
bne inv1
|
|
rts
|
|
flash:
|
|
sta prtptr
|
|
sty prtptr+1
|
|
ldy #0
|
|
lda (prtptr),y ; load initial char
|
|
flash1: ora #$40
|
|
jsr cout
|
|
iny
|
|
lda (prtptr),y
|
|
bne flash1
|
|
rts
|
|
print:
|
|
sta prtptr
|
|
sty prtptr+1
|
|
ldy #0
|
|
lda (prtptr),y ; load initial char
|
|
print1: ora #$80
|
|
jsr cout
|
|
iny
|
|
lda (prtptr),y
|
|
bne print1
|
|
rts
|
|
title:
|
|
.asciiz "INSTA-DISK"
|
|
errorm:
|
|
.asciiz "ERROR"
|
|
diskerrorm:
|
|
.asciiz "DISK ERROR"
|
|
donem:
|
|
.asciiz "DONE. PRESS [RETURN] TO REBOOT."
|
|
inflatem:
|
|
.asciiz "INFLATING DATA "
|
|
loadm:
|
|
.asciiz "LOADING DATA"
|
|
loadm2:
|
|
.asciiz ", ETA "
|
|
secm:
|
|
.asciiz " SEC. "
|
|
formatm:
|
|
.asciiz "FORMATTING DISK "
|
|
waitm:
|
|
.asciiz "WAITING FOR DATA: "
|
|
writem:
|
|
.asciiz "WRITING DATA "
|
|
track:
|
|
.byte "TRACK",$0D,0
|
|
header:
|
|
.byte " 1111111111222222222233333",$0D
|
|
.byte " 01234567890123456789012345678901234",$0D
|
|
.byte " ",0
|
|
left:
|
|
.byte " 0|",$0D
|
|
.byte " 1|",$0D
|
|
.byte " 2|",$0D
|
|
.byte " 3|",$0D
|
|
.byte " 4|",$0D
|
|
.byte "S 5|",$0D
|
|
.byte "E 6|",$0D
|
|
.byte "C 7|",$0D
|
|
.byte "T 8|",$0D
|
|
.byte "O 9|",$0D
|
|
.byte "R A|",$0D
|
|
.byte " B|",$0D
|
|
.byte " C|",$0D
|
|
.byte " D|",$0D
|
|
.byte " E|",$0D
|
|
.byte " F|",$0D,0
|
|
infdata:
|
|
;.byte 0,0,0,0 ; LSB/MSB start, ETA in sec
|
|
;.byte 0,0,0,0 ; LSB/MSB start, ETA in sec
|
|
;.byte 0,0,0,0 ; LSB/MSB start, ETA in sec
|
|
;.byte 0,0,0,0 ; LSB/MSB start, ETA in sec
|
|
;.byte 0,0,0,0 ; LSB/MSB start, ETA in sec
|
|
;.byte 0 ; format flag, 1 = no format
|
|
*/
|
|
unsigned char diskloadcode2[] = {
|
|
0xA2,0x00,0xBD,0xD0,0x96,0x9D,0xD0,0x03,
|
|
0xE8,0xE0,0x48,0xD0,0xF5,0xA9,0xB3,0x8D,
|
|
0xFF,0xBF,0x20,0x58,0xFC,0xA9,0x4C,0xA0,
|
|
0x99,0x20,0x13,0x99,0xA9,0x13,0x85,0x24,
|
|
0xA9,0x00,0x20,0x5B,0xFB,0xA9,0xE5,0xA0,
|
|
0x99,0x20,0x39,0x99,0xA9,0xEC,0xA0,0x99,
|
|
0x20,0x39,0x99,0xA2,0x23,0x20,0x05,0x99,
|
|
0xA9,0x41,0xA0,0x9A,0x20,0x39,0x99,0x20,
|
|
0xE3,0x03,0x84,0x0A,0x85,0x0B,0xA9,0x01,
|
|
0xA0,0x00,0x91,0x0A,0xA9,0x60,0xA0,0x01,
|
|
0x91,0x0A,0xA9,0x01,0xA0,0x02,0x91,0x0A,
|
|
0xA9,0xFE,0xA0,0x03,0x91,0x0A,0xAD,0xA6,
|
|
0x9A,0xD0,0x47,0x20,0xC2,0x98,0xA9,0xB3,
|
|
0xA0,0x99,0x20,0x39,0x99,0x20,0xDC,0x03,
|
|
0x84,0x0E,0x85,0x0F,0xA9,0x0B,0xA0,0x00,
|
|
0x91,0x0E,0xA9,0x9D,0xA0,0x01,0x91,0x0E,
|
|
0xA9,0xFE,0xA0,0x04,0x91,0x0E,0xA9,0x01,
|
|
0xA0,0x05,0x91,0x0E,0xA9,0x06,0xA0,0x06,
|
|
0x91,0x0E,0xA9,0x00,0xA0,0x0C,0x91,0x0E,
|
|
0xA9,0x92,0xA0,0x0D,0x91,0x0E,0x20,0xD6,
|
|
0x03,0xA0,0x0A,0xB1,0x0E,0xF0,0x03,0x4C,
|
|
0xB1,0x98,0xA9,0x00,0xA0,0x0B,0x91,0x0A,
|
|
0xA9,0x00,0xA0,0x08,0x91,0x0A,0xA9,0x00,
|
|
0x85,0x06,0xA9,0x05,0x85,0x07,0x20,0xC2,
|
|
0x98,0xA9,0x98,0xA0,0x99,0x20,0x26,0x99,
|
|
0xA9,0xA5,0xA0,0x99,0x20,0x39,0x99,0x38,
|
|
0xA9,0x05,0xE5,0x07,0x0A,0x0A,0xAA,0x86,
|
|
0x1E,0xBD,0x94,0x9A,0x20,0xED,0xFD,0xBD,
|
|
0x95,0x9A,0xF0,0x03,0x20,0xED,0xFD,0xA9,
|
|
0xAC,0xA0,0x99,0x20,0x39,0x99,0xA6,0x1E,
|
|
0xBD,0x92,0x9A,0x85,0x00,0xBD,0x93,0x9A,
|
|
0x85,0x01,0xA9,0x00,0x85,0x02,0xA9,0x90,
|
|
0x85,0x03,0x20,0x00,0x90,0xA2,0x60,0xBD,
|
|
0x89,0xC0,0x20,0xC2,0x98,0xA9,0x88,0xA0,
|
|
0x99,0x20,0x39,0x99,0xA6,0x1E,0xBD,0x92,
|
|
0x9A,0x85,0x10,0xBD,0x93,0x9A,0x85,0x11,
|
|
0xA9,0x00,0x85,0x12,0xA9,0x10,0x85,0x13,
|
|
0x20,0x00,0x9B,0xA9,0x00,0xC5,0x12,0xD0,
|
|
0x71,0xA9,0x80,0xC5,0x13,0xD0,0x6B,0x20,
|
|
0xC2,0x98,0xA9,0xD7,0xA0,0x99,0x20,0x39,
|
|
0x99,0xA9,0x10,0x85,0x08,0xA9,0x07,0x85,
|
|
0x09,0xA5,0x06,0xA0,0x04,0x91,0x0A,0xA9,
|
|
0x0F,0x85,0x05,0x20,0xEC,0x98,0xA5,0x05,
|
|
0xA0,0x05,0x91,0x0A,0xA5,0x08,0x18,0x65,
|
|
0x05,0xA0,0x09,0x91,0x0A,0xA9,0x02,0xA0,
|
|
0x0C,0x91,0x0A,0x20,0xE3,0x03,0x20,0xD9,
|
|
0x03,0xB0,0x3E,0xA9,0x00,0x85,0x48,0xC6,
|
|
0x05,0x10,0xD8,0xA5,0x08,0x18,0x69,0x10,
|
|
0x85,0x08,0xE6,0x06,0xC6,0x09,0xD0,0xC1,
|
|
0xC6,0x07,0xF0,0x03,0x4C,0xBE,0x97,0x20,
|
|
0xC2,0x98,0xA9,0x68,0xA0,0x99,0x20,0x39,
|
|
0x99,0x20,0xDD,0xFB,0x20,0x0C,0xFD,0x4C,
|
|
0xA6,0xFA,0xA2,0x60,0xBD,0x88,0xC0,0xA9,
|
|
0x57,0xA0,0x99,0x20,0x39,0x99,0x4C,0x69,
|
|
0xFF,0xA9,0x00,0x85,0x48,0x20,0xC2,0x98,
|
|
0xA9,0x5D,0xA0,0x99,0x20,0x39,0x99,0x4C,
|
|
0x69,0xFF,0xA9,0x00,0x85,0x24,0xA9,0x16,
|
|
0x20,0x5B,0xFB,0x4C,0x42,0xFC,0x18,0xA9,
|
|
0x04,0x65,0x05,0xA8,0xA9,0x04,0x65,0x06,
|
|
0xA2,0x57,0x4C,0xF8,0x98,0x18,0xA9,0x04,
|
|
0x65,0x05,0xA8,0xA9,0x04,0x65,0x06,0xA2,
|
|
0x52,0x4C,0xF8,0x98,0x18,0xA9,0x04,0x65,
|
|
0x05,0xA8,0xA9,0x04,0x65,0x06,0xA2,0x60,
|
|
0x85,0x24,0x98,0x20,0x5B,0xFB,0x8A,0x49,
|
|
0x40,0x20,0xED,0xFD,0x60,0xA9,0x2D,0x09,
|
|
0x80,0x20,0xED,0xFD,0xCA,0xD0,0xFA,0x20,
|
|
0x8E,0xFD,0x60,0x85,0x0C,0x84,0x0D,0xA0,
|
|
0x00,0xB1,0x0C,0x29,0x3F,0x20,0xED,0xFD,
|
|
0xC8,0xB1,0x0C,0xD0,0xF6,0x60,0x85,0x0C,
|
|
0x84,0x0D,0xA0,0x00,0xB1,0x0C,0x09,0x40,
|
|
0x20,0xED,0xFD,0xC8,0xB1,0x0C,0xD0,0xF6,
|
|
0x60,0x85,0x0C,0x84,0x0D,0xA0,0x00,0xB1,
|
|
0x0C,0x09,0x80,0x20,0xED,0xFD,0xC8,0xB1,
|
|
0x0C,0xD0,0xF6,0x60,0x49,0x4E,0x53,0x54,
|
|
0x41,0x2D,0x44,0x49,0x53,0x4B,0x00,0x45,
|
|
0x52,0x52,0x4F,0x52,0x00,0x44,0x49,0x53,
|
|
0x4B,0x20,0x45,0x52,0x52,0x4F,0x52,0x00,
|
|
0x44,0x4F,0x4E,0x45,0x2E,0x20,0x50,0x52,
|
|
0x45,0x53,0x53,0x20,0x5B,0x52,0x45,0x54,
|
|
0x55,0x52,0x4E,0x5D,0x20,0x54,0x4F,0x20,
|
|
0x52,0x45,0x42,0x4F,0x4F,0x54,0x2E,0x00,
|
|
0x49,0x4E,0x46,0x4C,0x41,0x54,0x49,0x4E,
|
|
0x47,0x20,0x44,0x41,0x54,0x41,0x20,0x00,
|
|
0x4C,0x4F,0x41,0x44,0x49,0x4E,0x47,0x20,
|
|
0x44,0x41,0x54,0x41,0x00,0x2C,0x20,0x45,
|
|
0x54,0x41,0x20,0x00,0x20,0x53,0x45,0x43,
|
|
0x2E,0x20,0x00,0x46,0x4F,0x52,0x4D,0x41,
|
|
0x54,0x54,0x49,0x4E,0x47,0x20,0x44,0x49,
|
|
0x53,0x4B,0x20,0x00,0x57,0x41,0x49,0x54,
|
|
0x49,0x4E,0x47,0x20,0x46,0x4F,0x52,0x20,
|
|
0x44,0x41,0x54,0x41,0x3A,0x20,0x00,0x57,
|
|
0x52,0x49,0x54,0x49,0x4E,0x47,0x20,0x44,
|
|
0x41,0x54,0x41,0x20,0x00,0x54,0x52,0x41,
|
|
0x43,0x4B,0x0D,0x00,0x20,0x20,0x20,0x20,
|
|
0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,
|
|
0x20,0x20,0x31,0x31,0x31,0x31,0x31,0x31,
|
|
0x31,0x31,0x31,0x31,0x32,0x32,0x32,0x32,
|
|
0x32,0x32,0x32,0x32,0x32,0x32,0x33,0x33,
|
|
0x33,0x33,0x33,0x0D,0x20,0x20,0x20,0x20,
|
|
0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,
|
|
0x38,0x39,0x30,0x31,0x32,0x33,0x34,0x35,
|
|
0x36,0x37,0x38,0x39,0x30,0x31,0x32,0x33,
|
|
0x34,0x35,0x36,0x37,0x38,0x39,0x30,0x31,
|
|
0x32,0x33,0x34,0x0D,0x20,0x20,0x20,0x20,
|
|
0x00,0x20,0x20,0x30,0x7C,0x0D,0x20,0x20,
|
|
0x31,0x7C,0x0D,0x20,0x20,0x32,0x7C,0x0D,
|
|
0x20,0x20,0x33,0x7C,0x0D,0x20,0x20,0x34,
|
|
0x7C,0x0D,0x53,0x20,0x35,0x7C,0x0D,0x45,
|
|
0x20,0x36,0x7C,0x0D,0x43,0x20,0x37,0x7C,
|
|
0x0D,0x54,0x20,0x38,0x7C,0x0D,0x4F,0x20,
|
|
0x39,0x7C,0x0D,0x52,0x20,0x41,0x7C,0x0D,
|
|
0x20,0x20,0x42,0x7C,0x0D,0x20,0x20,0x43,
|
|
0x7C,0x0D,0x20,0x20,0x44,0x7C,0x0D,0x20,
|
|
0x20,0x45,0x7C,0x0D,0x20,0x20,0x46,0x7C,
|
|
0x0D,0x00
|
|
};
|
|
/*
|
|
;diskload3.s
|
|
|
|
; inflate - uncompress data stored in the DEFLATE format
|
|
; by Piotr Fusik <fox@scene.pl>
|
|
; Last modified: 2007-06-17
|
|
|
|
; Compile with xasm (http://xasm.atari.org/), for example:
|
|
; xasm inflate.asx /l /d:inflate=$b700 /d:inflate_data=$b900 /d:inflate_zp=$f0
|
|
; inflate is 509 bytes of code and initialized data
|
|
; inflate_data is 764 bytes of uninitialized data
|
|
; inflate_zp is 10 bytes on page zero
|
|
|
|
; hacked for apple ii and ca65 by Egan Ford <egan@sense.net>
|
|
; dates
|
|
|
|
; compile nodes
|
|
|
|
; changes
|
|
|
|
;EFF
|
|
.define equ =
|
|
|
|
inflate = $9B00
|
|
inflate_zp = $10
|
|
inflate_data = $9200
|
|
|
|
; Pointer to compressed data
|
|
inputPointer equ inflate_zp ; 2 bytes
|
|
|
|
; Pointer to uncompressed data
|
|
outputPointer equ inflate_zp+2 ; 2 bytes
|
|
|
|
; Local variables
|
|
|
|
getBit_buffer equ inflate_zp+4 ; 1 byte
|
|
|
|
getBits_base equ inflate_zp+5 ; 1 byte
|
|
inflateStoredBlock_pageCounter equ inflate_zp+5 ; 1 byte
|
|
|
|
inflateCodes_sourcePointer equ inflate_zp+6 ; 2 bytes
|
|
inflateDynamicBlock_lengthIndex equ inflate_zp+6 ; 1 byte
|
|
inflateDynamicBlock_lastLength equ inflate_zp+7 ; 1 byte
|
|
inflateDynamicBlock_tempCodes equ inflate_zp+7 ; 1 byte
|
|
|
|
inflateCodes_lengthMinus2 equ inflate_zp+8 ; 1 byte
|
|
inflateDynamicBlock_allCodes equ inflate_zp+8 ; 1 byte
|
|
|
|
inflateCodes_primaryCodes equ inflate_zp+9 ; 1 byte
|
|
|
|
|
|
; Argument values for getBits
|
|
GET_1_BIT equ $81
|
|
GET_2_BITS equ $82
|
|
GET_3_BITS equ $84
|
|
GET_4_BITS equ $88
|
|
GET_5_BITS equ $90
|
|
GET_6_BITS equ $a0
|
|
GET_7_BITS equ $c0
|
|
|
|
; Maximum length of a Huffman code
|
|
MAX_CODE_LENGTH equ 15
|
|
|
|
; Huffman trees
|
|
TREE_SIZE equ MAX_CODE_LENGTH+1
|
|
PRIMARY_TREE equ 0
|
|
DISTANCE_TREE equ TREE_SIZE
|
|
|
|
; Alphabet
|
|
LENGTH_SYMBOLS equ 1+29+2
|
|
DISTANCE_SYMBOLS equ 30
|
|
CONTROL_SYMBOLS equ LENGTH_SYMBOLS+DISTANCE_SYMBOLS
|
|
TOTAL_SYMBOLS equ 256+CONTROL_SYMBOLS
|
|
|
|
; Optional (recommend for c2t or DOS)
|
|
; DOS header location and size LSB/MSB
|
|
; .byte <START,>START,<(END-START),>(END-START)
|
|
|
|
; Uncompress DEFLATE stream starting from the address stored in inputPointer
|
|
; to the memory starting from the address stored in outputPointer
|
|
;; org inflate
|
|
.org inflate
|
|
START:
|
|
;; mvy #0 getBit_buffer
|
|
LDY #0
|
|
STY getBit_buffer
|
|
|
|
|
|
inflate_blockLoop:
|
|
; Get a bit of EOF and two bits of block type
|
|
; ldy #0
|
|
sty getBits_base
|
|
lda #GET_3_BITS
|
|
jsr getBits
|
|
;; lsr @
|
|
lsr A
|
|
php
|
|
tax
|
|
bne inflateCompressedBlock
|
|
|
|
; Copy uncompressed block
|
|
; ldy #0
|
|
sty getBit_buffer
|
|
jsr getWord
|
|
jsr getWord
|
|
sta inflateStoredBlock_pageCounter
|
|
; jmp inflateStoredBlock_firstByte
|
|
bcs inflateStoredBlock_firstByte
|
|
inflateStoredBlock_copyByte:
|
|
jsr getByte
|
|
inflateStoreByte:
|
|
jsr storeByte
|
|
bcc inflateCodes_loop
|
|
inflateStoredBlock_firstByte:
|
|
inx
|
|
bne inflateStoredBlock_copyByte
|
|
inc inflateStoredBlock_pageCounter
|
|
bne inflateStoredBlock_copyByte
|
|
|
|
inflate_nextBlock:
|
|
plp
|
|
bcc inflate_blockLoop
|
|
rts
|
|
|
|
inflateCompressedBlock:
|
|
|
|
; Decompress a block with fixed Huffman trees
|
|
; :144 dta 8
|
|
; :112 dta 9
|
|
; :24 dta 7
|
|
; :6 dta 8
|
|
; :2 dta 8 ; codes with no meaning
|
|
; :30 dta 5+DISTANCE_TREE
|
|
; ldy #0
|
|
inflateFixedBlock_setCodeLengths:
|
|
lda #4
|
|
cpy #144
|
|
;; rol @
|
|
rol A
|
|
sta literalSymbolCodeLength,y
|
|
cpy #CONTROL_SYMBOLS
|
|
bcs inflateFixedBlock_noControlSymbol
|
|
lda #5+DISTANCE_TREE
|
|
cpy #LENGTH_SYMBOLS
|
|
bcs inflateFixedBlock_setControlCodeLength
|
|
cpy #24
|
|
adc #2-DISTANCE_TREE
|
|
inflateFixedBlock_setControlCodeLength:
|
|
sta controlSymbolCodeLength,y
|
|
inflateFixedBlock_noControlSymbol:
|
|
iny
|
|
bne inflateFixedBlock_setCodeLengths
|
|
; mva #LENGTH_SYMBOLS inflateCodes_primaryCodes
|
|
LDA #LENGTH_SYMBOLS
|
|
STA inflateCodes_primaryCodes
|
|
|
|
dex
|
|
beq inflateCodes
|
|
|
|
; Decompress a block reading Huffman trees first
|
|
|
|
; Build the tree for temporary codes
|
|
jsr buildTempHuffmanTree
|
|
|
|
; Use temporary codes to get lengths of literal/length and distance codes
|
|
ldx #0
|
|
; sec
|
|
inflateDynamicBlock_decodeLength:
|
|
php
|
|
stx inflateDynamicBlock_lengthIndex
|
|
; Fetch a temporary code
|
|
jsr fetchPrimaryCode
|
|
; Temporary code 0..15: put this length
|
|
tax
|
|
bpl inflateDynamicBlock_verbatimLength
|
|
; Temporary code 16: repeat last length 3 + getBits(2) times
|
|
; Temporary code 17: put zero length 3 + getBits(3) times
|
|
; Temporary code 18: put zero length 11 + getBits(7) times
|
|
jsr getBits
|
|
; sec
|
|
adc #1
|
|
cpx #GET_7_BITS
|
|
;; scc:adc #7
|
|
BCC S1
|
|
adc #7
|
|
S1:
|
|
tay
|
|
lda #0
|
|
cpx #GET_3_BITS
|
|
;; scs:lda inflateDynamicBlock_lastLength
|
|
BCS S2
|
|
lda inflateDynamicBlock_lastLength
|
|
S2:
|
|
inflateDynamicBlock_verbatimLength:
|
|
iny
|
|
ldx inflateDynamicBlock_lengthIndex
|
|
plp
|
|
inflateDynamicBlock_storeLength:
|
|
bcc inflateDynamicBlock_controlSymbolCodeLength
|
|
;; sta literalSymbolCodeLength,x+
|
|
sta literalSymbolCodeLength,x
|
|
INX
|
|
cpx #1
|
|
inflateDynamicBlock_storeNext:
|
|
dey
|
|
bne inflateDynamicBlock_storeLength
|
|
sta inflateDynamicBlock_lastLength
|
|
; jmp inflateDynamicBlock_decodeLength
|
|
beq inflateDynamicBlock_decodeLength
|
|
inflateDynamicBlock_controlSymbolCodeLength:
|
|
cpx inflateCodes_primaryCodes
|
|
;; scc:ora #DISTANCE_TREE
|
|
BCC S3
|
|
ora #DISTANCE_TREE
|
|
S3:
|
|
;; sta controlSymbolCodeLength,x+
|
|
sta controlSymbolCodeLength,x
|
|
INX
|
|
|
|
cpx inflateDynamicBlock_allCodes
|
|
bcc inflateDynamicBlock_storeNext
|
|
dey
|
|
; ldy #0
|
|
; jmp inflateCodes
|
|
|
|
; Decompress a block
|
|
inflateCodes:
|
|
jsr buildHuffmanTree
|
|
inflateCodes_loop:
|
|
jsr fetchPrimaryCode
|
|
bcc inflateStoreByte
|
|
tax
|
|
beq inflate_nextBlock
|
|
; Copy sequence from look-behind buffer
|
|
; ldy #0
|
|
sty getBits_base
|
|
cmp #9
|
|
bcc inflateCodes_setSequenceLength
|
|
tya
|
|
; lda #0
|
|
cpx #1+28
|
|
bcs inflateCodes_setSequenceLength
|
|
dex
|
|
txa
|
|
;; lsr @
|
|
lsr A
|
|
ror getBits_base
|
|
inc getBits_base
|
|
;; lsr @
|
|
lsr A
|
|
rol getBits_base
|
|
jsr getAMinus1BitsMax8
|
|
; sec
|
|
adc #0
|
|
inflateCodes_setSequenceLength:
|
|
sta inflateCodes_lengthMinus2
|
|
ldx #DISTANCE_TREE
|
|
jsr fetchCode
|
|
; sec
|
|
sbc inflateCodes_primaryCodes
|
|
tax
|
|
cmp #4
|
|
bcc inflateCodes_setOffsetLowByte
|
|
inc getBits_base
|
|
;; lsr @
|
|
lsr A
|
|
jsr getAMinus1BitsMax8
|
|
inflateCodes_setOffsetLowByte:
|
|
eor #$ff
|
|
sta inflateCodes_sourcePointer
|
|
lda getBits_base
|
|
cpx #10
|
|
bcc inflateCodes_setOffsetHighByte
|
|
lda getNPlus1Bits_mask-10,x
|
|
jsr getBits
|
|
clc
|
|
inflateCodes_setOffsetHighByte:
|
|
eor #$ff
|
|
; clc
|
|
adc outputPointer+1
|
|
sta inflateCodes_sourcePointer+1
|
|
jsr copyByte
|
|
jsr copyByte
|
|
inflateCodes_copyByte:
|
|
jsr copyByte
|
|
dec inflateCodes_lengthMinus2
|
|
bne inflateCodes_copyByte
|
|
; jmp inflateCodes_loop
|
|
beq inflateCodes_loop
|
|
|
|
buildTempHuffmanTree:
|
|
; ldy #0
|
|
tya
|
|
inflateDynamicBlock_clearCodeLengths:
|
|
sta literalSymbolCodeLength,y
|
|
sta literalSymbolCodeLength+TOTAL_SYMBOLS-256,y
|
|
iny
|
|
bne inflateDynamicBlock_clearCodeLengths
|
|
; numberOfPrimaryCodes = 257 + getBits(5)
|
|
; numberOfDistanceCodes = 1 + getBits(5)
|
|
; numberOfTemporaryCodes = 4 + getBits(4)
|
|
ldx #3
|
|
inflateDynamicBlock_getHeader:
|
|
lda inflateDynamicBlock_headerBits-1,x
|
|
jsr getBits
|
|
; sec
|
|
adc inflateDynamicBlock_headerBase-1,x
|
|
sta inflateDynamicBlock_tempCodes-1,x
|
|
sta inflateDynamicBlock_headerBase+1
|
|
dex
|
|
bne inflateDynamicBlock_getHeader
|
|
|
|
; Get lengths of temporary codes in the order stored in tempCodeLengthOrder
|
|
; ldx #0
|
|
inflateDynamicBlock_getTempCodeLengths:
|
|
lda #GET_3_BITS
|
|
jsr getBits
|
|
ldy tempCodeLengthOrder,x
|
|
sta literalSymbolCodeLength,y
|
|
ldy #0
|
|
inx
|
|
cpx inflateDynamicBlock_tempCodes
|
|
bcc inflateDynamicBlock_getTempCodeLengths
|
|
|
|
; Build Huffman trees basing on code lengths (in bits)
|
|
; stored in the *SymbolCodeLength arrays
|
|
buildHuffmanTree:
|
|
; Clear nBitCode_totalCount, nBitCode_literalCount, nBitCode_controlCount
|
|
tya
|
|
; lda #0
|
|
;; sta:rne nBitCode_clearFrom,y+
|
|
R1:
|
|
sta nBitCode_clearFrom,y
|
|
INY
|
|
BNE R1
|
|
; Count number of codes of each length
|
|
; ldy #0
|
|
buildHuffmanTree_countCodeLengths:
|
|
ldx literalSymbolCodeLength,y
|
|
inc nBitCode_literalCount,x
|
|
inc nBitCode_totalCount,x
|
|
cpy #CONTROL_SYMBOLS
|
|
bcs buildHuffmanTree_noControlSymbol
|
|
ldx controlSymbolCodeLength,y
|
|
inc nBitCode_controlCount,x
|
|
inc nBitCode_totalCount,x
|
|
buildHuffmanTree_noControlSymbol:
|
|
iny
|
|
bne buildHuffmanTree_countCodeLengths
|
|
; Calculate offsets of symbols sorted by code length
|
|
; lda #0
|
|
ldx #-3*TREE_SIZE
|
|
buildHuffmanTree_calculateOffsets:
|
|
sta nBitCode_literalOffset+3*TREE_SIZE-$100,x
|
|
;; add nBitCode_literalCount+3*TREE_SIZE-$100,x
|
|
CLC
|
|
ADC nBitCode_literalCount+3*TREE_SIZE-$100,x
|
|
inx
|
|
bne buildHuffmanTree_calculateOffsets
|
|
; Put symbols in their place in the sorted array
|
|
; ldy #0
|
|
buildHuffmanTree_assignCode:
|
|
tya
|
|
ldx literalSymbolCodeLength,y
|
|
;; ldy:inc nBitCode_literalOffset,x
|
|
ldy nBitCode_literalOffset,x
|
|
inc nBitCode_literalOffset,x
|
|
sta codeToLiteralSymbol,y
|
|
tay
|
|
cpy #CONTROL_SYMBOLS
|
|
bcs buildHuffmanTree_noControlSymbol2
|
|
ldx controlSymbolCodeLength,y
|
|
;; ldy:inc nBitCode_controlOffset,x
|
|
ldy nBitCode_controlOffset,x
|
|
inc nBitCode_controlOffset,x
|
|
sta codeToControlSymbol,y
|
|
tay
|
|
buildHuffmanTree_noControlSymbol2:
|
|
iny
|
|
bne buildHuffmanTree_assignCode
|
|
rts
|
|
|
|
; Read Huffman code using the primary tree
|
|
fetchPrimaryCode:
|
|
ldx #PRIMARY_TREE
|
|
; Read a code from input basing on the tree specified in X,
|
|
; return low byte of this code in A,
|
|
; return C flag reset for literal code, set for length code
|
|
fetchCode:
|
|
; ldy #0
|
|
tya
|
|
fetchCode_nextBit:
|
|
jsr getBit
|
|
;; rol @
|
|
rol A
|
|
inx
|
|
;; sub nBitCode_totalCount,x
|
|
SEC
|
|
SBC nBitCode_totalCount,x
|
|
bcs fetchCode_nextBit
|
|
; clc
|
|
adc nBitCode_controlCount,x
|
|
bcs fetchCode_control
|
|
; clc
|
|
adc nBitCode_literalOffset,x
|
|
tax
|
|
lda codeToLiteralSymbol,x
|
|
clc
|
|
rts
|
|
fetchCode_control:
|
|
;; add nBitCode_controlOffset-1,x
|
|
CLC
|
|
ADC nBitCode_controlOffset-1,x
|
|
tax
|
|
lda codeToControlSymbol,x
|
|
sec
|
|
rts
|
|
|
|
; Read A minus 1 bits, but no more than 8
|
|
getAMinus1BitsMax8:
|
|
rol getBits_base
|
|
tax
|
|
cmp #9
|
|
bcs getByte
|
|
lda getNPlus1Bits_mask-2,x
|
|
getBits:
|
|
jsr getBits_loop
|
|
getBits_normalizeLoop:
|
|
lsr getBits_base
|
|
;; ror @
|
|
ror A
|
|
bcc getBits_normalizeLoop
|
|
rts
|
|
|
|
; Read 16 bits
|
|
getWord:
|
|
jsr getByte
|
|
tax
|
|
; Read 8 bits
|
|
getByte:
|
|
lda #$80
|
|
getBits_loop:
|
|
jsr getBit
|
|
;; ror @
|
|
ror A
|
|
bcc getBits_loop
|
|
rts
|
|
|
|
; Read one bit, return in the C flag
|
|
getBit:
|
|
lsr getBit_buffer
|
|
bne getBit_return
|
|
pha
|
|
; ldy #0
|
|
lda (inputPointer),y
|
|
;; inw inputPointer
|
|
INC inputPointer
|
|
BNE S4
|
|
INC inputPointer+1
|
|
S4:
|
|
sec
|
|
;; ror @
|
|
ror A
|
|
sta getBit_buffer
|
|
pla
|
|
getBit_return:
|
|
rts
|
|
|
|
; Copy a previously written byte
|
|
copyByte:
|
|
ldy outputPointer
|
|
lda (inflateCodes_sourcePointer),y
|
|
ldy #0
|
|
; Write a byte
|
|
storeByte:
|
|
sta (outputPointer),y
|
|
inc outputPointer
|
|
bne storeByte_return
|
|
inc outputPointer+1
|
|
inc inflateCodes_sourcePointer+1
|
|
storeByte_return:
|
|
rts
|
|
|
|
getNPlus1Bits_mask:
|
|
.byte GET_1_BIT,GET_2_BITS,GET_3_BITS,GET_4_BITS,GET_5_BITS,GET_6_BITS,GET_7_BITS
|
|
|
|
tempCodeLengthOrder:
|
|
.byte GET_2_BITS,GET_3_BITS,GET_7_BITS,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15
|
|
|
|
inflateDynamicBlock_headerBits:
|
|
.byte GET_4_BITS,GET_5_BITS,GET_5_BITS
|
|
inflateDynamicBlock_headerBase:
|
|
.byte 3,0,0 ; second byte is modified at runtime!
|
|
|
|
.org inflate_data
|
|
|
|
; Data for building trees
|
|
|
|
literalSymbolCodeLength:
|
|
.org *+256
|
|
controlSymbolCodeLength:
|
|
.org *+CONTROL_SYMBOLS
|
|
|
|
; Huffman trees
|
|
|
|
nBitCode_clearFrom:
|
|
nBitCode_totalCount:
|
|
.org *+2*TREE_SIZE
|
|
nBitCode_literalCount:
|
|
.org *+TREE_SIZE
|
|
nBitCode_controlCount:
|
|
.org *+2*TREE_SIZE
|
|
nBitCode_literalOffset:
|
|
.org *+TREE_SIZE
|
|
nBitCode_controlOffset:
|
|
.org *+2*TREE_SIZE
|
|
|
|
codeToLiteralSymbol:
|
|
.org *+256
|
|
codeToControlSymbol:
|
|
.org *+CONTROL_SYMBOLS
|
|
|
|
.byte 0,0,0 ; round out block
|
|
|
|
END:
|
|
*/
|
|
unsigned char diskloadcode3[] = {
|
|
0xA0,0x00,0x84,0x14,0x84,0x15,0xA9,0x84,
|
|
0x20,0xA3,0x9C,0x4A,0x08,0xAA,0xD0,0x1F,
|
|
0x84,0x14,0x20,0xAC,0x9C,0x20,0xAC,0x9C,
|
|
0x85,0x15,0xB0,0x08,0x20,0xB0,0x9C,0x20,
|
|
0xD2,0x9C,0x90,0x75,0xE8,0xD0,0xF5,0xE6,
|
|
0x15,0xD0,0xF1,0x28,0x90,0xD6,0x60,0xA9,
|
|
0x04,0xC0,0x90,0x2A,0x99,0x00,0x92,0xC0,
|
|
0x3E,0xB0,0x0D,0xA9,0x15,0xC0,0x20,0xB0,
|
|
0x04,0xC0,0x18,0x69,0xF2,0x99,0x00,0x93,
|
|
0xC8,0xD0,0xE4,0xA9,0x20,0x85,0x19,0xCA,
|
|
0xF0,0x44,0x20,0xF5,0x9B,0xA2,0x00,0x08,
|
|
0x86,0x16,0x20,0x73,0x9C,0xAA,0x10,0x14,
|
|
0x20,0xA3,0x9C,0x69,0x01,0xE0,0xC0,0x90,
|
|
0x02,0x69,0x07,0xA8,0xA9,0x00,0xE0,0x84,
|
|
0xB0,0x02,0xA5,0x17,0xC8,0xA6,0x16,0x28,
|
|
0x90,0x0D,0x9D,0x00,0x92,0xE8,0xE0,0x01,
|
|
0x88,0xD0,0xF5,0x85,0x17,0xF0,0xD0,0xE4,
|
|
0x19,0x90,0x02,0x09,0x10,0x9D,0x00,0x93,
|
|
0xE8,0xE4,0x18,0x90,0xEB,0x88,0x20,0x24,
|
|
0x9C,0x20,0x73,0x9C,0x90,0x81,0xAA,0xF0,
|
|
0x8A,0x84,0x15,0xC9,0x09,0x90,0x14,0x98,
|
|
0xE0,0x1D,0xB0,0x0F,0xCA,0x8A,0x4A,0x66,
|
|
0x15,0xE6,0x15,0x4A,0x26,0x15,0x20,0x99,
|
|
0x9C,0x69,0x00,0x85,0x18,0xA2,0x10,0x20,
|
|
0x75,0x9C,0xE5,0x19,0xAA,0xC9,0x04,0x90,
|
|
0x06,0xE6,0x15,0x4A,0x20,0x99,0x9C,0x49,
|
|
0xFF,0x85,0x16,0xA5,0x15,0xE0,0x0A,0x90,
|
|
0x07,0xBD,0xD3,0x9C,0x20,0xA3,0x9C,0x18,
|
|
0x49,0xFF,0x65,0x13,0x85,0x17,0x20,0xCC,
|
|
0x9C,0x20,0xCC,0x9C,0x20,0xCC,0x9C,0xC6,
|
|
0x18,0xD0,0xF9,0xF0,0xA4,0x98,0x99,0x00,
|
|
0x92,0x99,0x3E,0x92,0xC8,0xD0,0xF7,0xA2,
|
|
0x03,0xBD,0xF6,0x9C,0x20,0xA3,0x9C,0x7D,
|
|
0xF9,0x9C,0x95,0x16,0x8D,0xFB,0x9C,0xCA,
|
|
0xD0,0xEF,0xA9,0x84,0x20,0xA3,0x9C,0xBC,
|
|
0xE4,0x9C,0x99,0x00,0x92,0xA0,0x00,0xE8,
|
|
0xE4,0x17,0x90,0xEE,0x98,0x99,0x3E,0x93,
|
|
0xC8,0xD0,0xFA,0xBE,0x00,0x92,0xFE,0x5E,
|
|
0x93,0xFE,0x3E,0x93,0xC0,0x3E,0xB0,0x09,
|
|
0xBE,0x00,0x93,0xFE,0x6E,0x93,0xFE,0x3E,
|
|
0x93,0xC8,0xD0,0xE7,0xA2,0xD0,0x9D,0xBE,
|
|
0x92,0x18,0x7D,0x8E,0x92,0xE8,0xD0,0xF6,
|
|
0x98,0xBE,0x00,0x92,0xBC,0x8E,0x93,0xFE,
|
|
0x8E,0x93,0x99,0xBE,0x93,0xA8,0xC0,0x3E,
|
|
0xB0,0x0D,0xBE,0x00,0x93,0xBC,0x9E,0x93,
|
|
0xFE,0x9E,0x93,0x99,0xBE,0x94,0xA8,0xC8,
|
|
0xD0,0xDE,0x60,0xA2,0x00,0x98,0x20,0xB9,
|
|
0x9C,0x2A,0xE8,0x38,0xFD,0x3E,0x93,0xB0,
|
|
0xF5,0x7D,0x6E,0x93,0xB0,0x09,0x7D,0x8E,
|
|
0x93,0xAA,0xBD,0xBE,0x93,0x18,0x60,0x18,
|
|
0x7D,0x9D,0x93,0xAA,0xBD,0xBE,0x94,0x38,
|
|
0x60,0x26,0x15,0xAA,0xC9,0x09,0xB0,0x10,
|
|
0xBD,0xDB,0x9C,0x20,0xB2,0x9C,0x46,0x15,
|
|
0x6A,0x90,0xFB,0x60,0x20,0xB0,0x9C,0xAA,
|
|
0xA9,0x80,0x20,0xB9,0x9C,0x6A,0x90,0xFA,
|
|
0x60,0x46,0x14,0xD0,0x0E,0x48,0xB1,0x10,
|
|
0xE6,0x10,0xD0,0x02,0xE6,0x11,0x38,0x6A,
|
|
0x85,0x14,0x68,0x60,0xA4,0x12,0xB1,0x16,
|
|
0xA0,0x00,0x91,0x12,0xE6,0x12,0xD0,0x04,
|
|
0xE6,0x13,0xE6,0x17,0x60,0x81,0x82,0x84,
|
|
0x88,0x90,0xA0,0xC0,0x82,0x84,0xC0,0x00,
|
|
0x08,0x07,0x09,0x06,0x0A,0x05,0x0B,0x04,
|
|
0x0C,0x03,0x0D,0x02,0x0E,0x01,0x0F,0x88,
|
|
0x90,0x90,0x03,0x00,0x00,0x00,0x00,0x00
|
|
|
|
};
|
|
|
|
//DOS 3.3
|
|
unsigned char dosboot1[] = {
|
|
0x4C,0xBF,0x9D,0x4C,0x84,0x9D,0x4C,0xFD,
|
|
0xAA,0x4C,0xB5,0xB7,0xAD,0x0F,0x9D,0xAC,
|
|
0x0E,0x9D,0x60,0xAD,0xC2,0xAA,0xAC,0xC1,
|
|
0xAA,0x60,0x4C,0x51,0xA8,0xEA,0xEA,0x4C,
|
|
0x59,0xFA,0xBF,0x9D,0x38,0x4C,0x58,0xFF,
|
|
0x4C,0x65,0xFF,0x4C,0x65,0xFF,0x65,0xFF,
|
|
};
|
|
|
|
//DOS 3.3
|
|
unsigned char dosboot2[] = {
|
|
0xD3,0x9C,0x81,0x9E,0xBD,0x9E,0x75,0xAA,
|
|
0x93,0xAA,0x60,0xAA,0x00,0x9D,0xBB,0xB5,
|
|
0xEA,0x9E,0x11,0x9F,0x22,0x9F,0x2E,0x9F,
|
|
0x51,0x9F,0x60,0x9F,0x70,0x9F,0x4E,0xA5,
|
|
0x12,0xA4,0x96,0xA3,0xD0,0xA4,0xEF,0xA4,
|
|
0x62,0xA2,0x70,0xA2,0x74,0xA2,0xE9,0xA2,
|
|
0x1A,0xA5,0xC5,0xA5,0x0F,0xA5,0xDC,0xA5,
|
|
0xA2,0xA2,0x97,0xA2,0x80,0xA2,0x6D,0xA5,
|
|
0x32,0xA2,0x3C,0xA2,0x28,0xA2,0x2D,0xA2,
|
|
0x50,0xA2,0x79,0xA5,0x9D,0xA5,0x30,0xA3,
|
|
0x5C,0xA3,0x8D,0xA3,0x7C,0xA2,0xFC,0xA4,
|
|
0xFC,0xA4,0x65,0xD8,0x00,0xE0,0x3C,0xD4,
|
|
0xF2,0xD4,0x36,0xE8,0xE5,0xA4,0xE3,0xE3,
|
|
0x00,0xE0,0x03,0xE0,0xFC,0xA4,0xFC,0xA4,
|
|
0x65,0xD8,0x00,0xE0,0x3C,0xD4,0xF2,0xD4,
|
|
0x06,0xA5,0x06,0xA5,0x67,0x10,0x84,0x9D,
|
|
0x3C,0x0C,0xF2,0x0C,0xAD,0xE9,0xB7,0x4A,
|
|
0x4A,0x4A,0x4A,0x8D,0x6A,0xAA,0xAD,0xEA,
|
|
0xB7,0x8D,0x68,0xAA,0xAD,0x00,0xE0,0x49,
|
|
0x20,0xD0,0x11,0x8D,0xB6,0xAA,0xA2,0x0A,
|
|
0xBD,0x61,0x9D,0x9D,0x55,0x9D,0xCA,0xD0,
|
|
0xF7,0x4C,0xBC,0x9D,0xA9,0x40,0x8D,0xB6,
|
|
0xAA,0xA2,0x0C,0xBD,0x6B,0x9D,0x9D,0x55,
|
|
0x9D,0xCA,0xD0,0xF7,0x38,0xB0,0x12,0xAD,
|
|
0xB6,0xAA,0xD0,0x04,0xA9,0x20,0xD0,0x05,
|
|
0x0A,0x10,0x05,0xA9,0x4C,0x20,0xB2,0xA5,
|
|
0x18,0x08,0x20,0x51,0xA8,0xA9,0x00,0x8D,
|
|
0x5E,0xAA,0x8D,0x52,0xAA,0x28,0x6A,0x8D,
|
|
0x51,0xAA,0x30,0x03,0x6C,0x5E,0x9D,0x6C,
|
|
0x5C,0x9D,0x0A,0x10,0x19,0x8D,0xB6,0xAA,
|
|
0xA2,0x0C,0xBD,0x77,0x9D,0x9D,0x55,0x9D,
|
|
0xCA,0xD0,0xF7,0xA2,0x1D,0xBD,0x93,0xAA,
|
|
0x9D,0x75,0xAA,0xCA,0x10,0xF7,0xAD,0xB1,
|
|
0xAA,0x8D,0x57,0xAA,0x20,0xD4,0xA7,0xAD,
|
|
0xB3,0xAA,0xF0,0x09,0x48,0x20,0x9D,0xA6,
|
|
0x68,0xA0,0x00,0x91,0x40,0x20,0x5B,0xA7,
|
|
0xAD,0x5F,0xAA,0xD0,0x20,0xA2,0x2F,0xBD,
|
|
0x51,0x9E,0x9D,0xD0,0x03,0xCA,0x10,0xF7,
|
|
0xAD,0x53,0x9E,0x8D,0xF3,0x03,0x49,0xA5,
|
|
0x8D,0xF4,0x03,0xAD,0x52,0x9E,0x8D,0xF2,
|
|
0x03,0xA9,0x06,0xD0,0x05,0xAD,0x62,0xAA,
|
|
0xF0,0x06,0x8D,0x5F,0xAA,0x4C,0x80,0xA1,
|
|
0x60,0x4C,0xBF,0x9D,0x4C,0x84,0x9D,0x4C,
|
|
0xFD,0xAA,0x4C,0xB5,0xB7,0xAD,0x0F,0x9D,
|
|
0xAC,0x0E,0x9D,0x60,0xAD,0xC2,0xAA,0xAC,
|
|
0xC1,0xAA,0x60,0x4C,0x51,0xA8,0xEA,0xEA,
|
|
0x4C,0x59,0xFA,0x4C,0x65,0xFF,0x4C,0x58,
|
|
0xFF,0x4C,0x65,0xFF,0x4C,0x65,0xFF,0x65,
|
|
0xFF,0x20,0xD1,0x9E,0xAD,0x51,0xAA,0xF0,
|
|
0x15,0x48,0xAD,0x5C,0xAA,0x91,0x28,0x68,
|
|
0x30,0x03,0x4C,0x26,0xA6,0x20,0xEA,0x9D,
|
|
0xA4,0x24,0xA9,0x60,0x91,0x28,0xAD,0xB3,
|
|
0xAA,0xF0,0x03,0x20,0x82,0xA6,0xA9,0x03,
|
|
0x8D,0x52,0xAA,0x20,0xBA,0x9F,0x20,0xBA,
|
|
0x9E,0x8D,0x5C,0xAA,0x8E,0x5A,0xAA,0x4C,
|
|
0xB3,0x9F,0x6C,0x38,0x00,0x20,0xD1,0x9E,
|
|
0xAD,0x52,0xAA,0x0A,0xAA,0xBD,0x11,0x9D,
|
|
0x48,0xBD,0x10,0x9D,0x48,0xAD,0x5C,0xAA,
|
|
0x60,0x8D,0x5C,0xAA,0x8E,0x5A,0xAA,0x8C,
|
|
0x5B,0xAA,0xBA,0xE8,0xE8,0x8E,0x59,0xAA,
|
|
0xA2,0x03,0xBD,0x53,0xAA,0x95,0x36,0xCA,
|
|
0x10,0xF8,0x60,0xAE,0xB7,0xAA,0xF0,0x03,
|
|
0x4C,0x78,0x9F,0xAE,0x51,0xAA,0xF0,0x08,
|
|
0xC9,0xBF,0xF0,0x75,0xC5,0x33,0xF0,0x27,
|
|
0xA2,0x02,0x8E,0x52,0xAA,0xCD,0xB2,0xAA,
|
|
0xD0,0x19,0xCA,0x8E,0x52,0xAA,0xCA,0x8E,
|
|
0x5D,0xAA,0xAE,0x5D,0xAA,0x9D,0x00,0x02,
|
|
0xE8,0x8E,0x5D,0xAA,0xC9,0x8D,0xD0,0x75,
|
|
0x4C,0xCD,0x9F,0xC9,0x8D,0xD0,0x7D,0xA2,
|
|
0x00,0x8E,0x52,0xAA,0x4C,0xA4,0x9F,0xA2,
|
|
0x00,0x8E,0x52,0xAA,0xC9,0x8D,0xF0,0x07,
|
|
0xAD,0xB3,0xAA,0xF0,0x67,0xD0,0x5E,0x48,
|
|
0x38,0xAD,0xB3,0xAA,0xD0,0x03,0x20,0x5E,
|
|
0xA6,0x68,0x90,0xEC,0xAE,0x5A,0xAA,0x4C,
|
|
0x15,0x9F,0xC9,0x8D,0xD0,0x05,0xA9,0x05,
|
|
0x8D,0x52,0xAA,0x20,0x0E,0xA6,0x4C,0x99,
|
|
0x9F,0xCD,0xB2,0xAA,0xF0,0x85,0xC9,0x8A,
|
|
0xF0,0xF1,0xA2,0x04,0x8E,0x52,0xAA,0xD0,
|
|
0xE1,0xA9,0x00,0x8D,0x52,0xAA,0xF0,0x25,
|
|
0xA9,0x00,0x8D,0xB7,0xAA,0x20,0x51,0xA8,
|
|
0x4C,0xDC,0xA4,0xAD,0x00,0x02,0xCD,0xB2,
|
|
0xAA,0xF0,0x0A,0xA9,0x8D,0x8D,0x00,0x02,
|
|
0xA2,0x00,0x8E,0x5A,0xAA,0xA9,0x40,0xD0,
|
|
0x06,0xA9,0x10,0xD0,0x02,0xA9,0x20,0x2D,
|
|
0x5E,0xAA,0xF0,0x0F,0x20,0xBA,0x9F,0x20,
|
|
0xC5,0x9F,0x8D,0x5C,0xAA,0x8C,0x5B,0xAA,
|
|
0x8E,0x5A,0xAA,0x20,0x51,0xA8,0xAE,0x59,
|
|
0xAA,0x9A,0xAD,0x5C,0xAA,0xAC,0x5B,0xAA,
|
|
0xAE,0x5A,0xAA,0x38,0x60,0x6C,0x36,0x00,
|
|
0xA9,0x8D,0x4C,0xC5,0x9F,0xA0,0xFF,0x8C,
|
|
0x5F,0xAA,0xC8,0x8C,0x62,0xAA,0xEE,0x5F,
|
|
0xAA,0xA2,0x00,0x08,0xBD,0x00,0x02,0xCD,
|
|
0xB2,0xAA,0xD0,0x01,0xE8,0x8E,0x5D,0xAA,
|
|
0x20,0xA4,0xA1,0x29,0x7F,0x59,0x84,0xA8,
|
|
0xC8,0x0A,0xF0,0x02,0x68,0x08,0x90,0xF0,
|
|
0x28,0xF0,0x20,0xB9,0x84,0xA8,0xD0,0xD6,
|
|
0xAD,0x00,0x02,0xCD,0xB2,0xAA,0xF0,0x03,
|
|
0x4C,0xA4,0x9F,0xAD,0x01,0x02,0xC9,0x8D,
|
|
0xD0,0x06,0x20,0x5B,0xA7,0x4C,0x95,0x9F,
|
|
0x4C,0xC4,0xA6,0x0E,0x5F,0xAA,0xAC,0x5F,
|
|
0xAA,0x20,0x5E,0xA6,0x90,0x0C,0xA9,0x02,
|
|
0x39,0x09,0xA9,0xF0,0x05,0xA9,0x0F,0x4C,
|
|
0xD2,0xA6,0xC0,0x06,0xD0,0x02,0x84,0x33,
|
|
0xA9,0x20,0x39,0x09,0xA9,0xF0,0x61,0x20,
|
|
0x95,0xA0,0x08,0x20,0xA4,0xA1,0xF0,0x1E,
|
|
0x0A,0x90,0x05,0x30,0x03,0x4C,0x00,0xA0,
|
|
0x6A,0x4C,0x59,0xA0,0x20,0x93,0xA1,0xF0,
|
|
0x0D,0x99,0x75,0xAA,0xC8,0xC0,0x3C,0x90,
|
|
0xF3,0x20,0x93,0xA1,0xD0,0xFB,0x28,0xD0,
|
|
0x0F,0xAC,0x5F,0xAA,0xA9,0x10,0x39,0x09,
|
|
0xA9,0xF0,0x0C,0xA0,0x1E,0x08,0xD0,0xCB,
|
|
0xAD,0x93,0xAA,0xC9,0xA0,0xF0,0x13,0xAD,
|
|
0x75,0xAA,0xC9,0xA0,0xD0,0x4B,0xAC,0x5F,
|
|
0xAA,0xA9,0xC0,0x39,0x09,0xA9,0xF0,0x02,
|
|
0x10,0x3F,0x4C,0x00,0xA0,0xA0,0x3C,0xA9,
|
|
0xA0,0x99,0x74,0xAA,0x88,0xD0,0xFA,0x60,
|
|
0x8D,0x75,0xAA,0xA9,0x0C,0x39,0x09,0xA9,
|
|
0xF0,0x27,0x20,0xB9,0xA1,0xB0,0x1F,0xA8,
|
|
0xD0,0x17,0xE0,0x11,0xB0,0x13,0xAC,0x5F,
|
|
0xAA,0xA9,0x08,0x39,0x09,0xA9,0xF0,0x06,
|
|
0xE0,0x08,0xB0,0xCE,0x90,0x0B,0x8A,0xD0,
|
|
0x08,0xA9,0x02,0x4C,0xD2,0xA6,0x4C,0xC4,
|
|
0xA6,0xA9,0x00,0x8D,0x65,0xAA,0x8D,0x74,
|
|
0xAA,0x8D,0x66,0xAA,0x8D,0x6C,0xAA,0x8D,
|
|
0x6D,0xAA,0x20,0xDC,0xBF,0xAD,0x5D,0xAA,
|
|
0x20,0xA4,0xA1,0xD0,0x1F,0xC9,0x8D,0xD0,
|
|
0xF7,0xAE,0x5F,0xAA,0xAD,0x65,0xAA,0x1D,
|
|
0x0A,0xA9,0x5D,0x0A,0xA9,0xD0,0x93,0xAE,
|
|
0x63,0xAA,0xF0,0x76,0x8D,0x63,0xAA,0x8E,
|
|
0x5D,0xAA,0xD0,0xDC,0xA2,0x0A,0xDD,0x40,
|
|
0xA9,0xF0,0x05,0xCA,0xD0,0xF8,0xF0,0xB6,
|
|
0xBD,0x4A,0xA9,0x30,0x47,0x0D,0x65,0xAA,
|
|
0x8D,0x65,0xAA,0xCA,0x8E,0x64,0xAA,0x20,
|
|
0xB9,0xA1,0xB0,0xA2,0xAD,0x64,0xAA,0x0A,
|
|
0x0A,0xA8,0xA5,0x45,0xD0,0x09,0xA5,0x44,
|
|
0xD9,0x55,0xA9,0x90,0x8C,0xA5,0x45,0xD9,
|
|
0x58,0xA9,0x90,0x0B,0xD0,0x83,0xA5,0x44,
|
|
0xD9,0x57,0xA9,0x90,0x02,0xD0,0xF5,0xAD,
|
|
0x63,0xAA,0xD0,0x94,0x98,0x4A,0xA8,0xA5,
|
|
0x45,0x99,0x67,0xAA,0xA5,0x44,0x99,0x66,
|
|
0xAA,0x4C,0xE8,0xA0,0x48,0xA9,0x80,0x0D,
|
|
0x65,0xAA,0x8D,0x65,0xAA,0x68,0x29,0x7F,
|
|
0x0D,0x74,0xAA,0x8D,0x74,0xAA,0xD0,0xE9,
|
|
0xF0,0x9C,0x20,0x80,0xA1,0x4C,0x83,0x9F,
|
|
0x20,0x5B,0xA7,0x20,0xAE,0xA1,0xAD,0x5F,
|
|
0xAA,0xAA,0xBD,0x1F,0x9D,0x48,0xBD,0x1E,
|
|
0x9D,0x48,0x60,0xAE,0x5D,0xAA,0xBD,0x00,
|
|
0x02,0xC9,0x8D,0xF0,0x06,0xE8,0x8E,0x5D,
|
|
0xAA,0xC9,0xAC,0x60,0x20,0x93,0xA1,0xF0,
|
|
0xFA,0xC9,0xA0,0xF0,0xF7,0x60,0xA9,0x00,
|
|
0xA0,0x16,0x99,0xBA,0xB5,0x88,0xD0,0xFA,
|
|
0x60,0xA9,0x00,0x85,0x44,0x85,0x45,0x20,
|
|
0xA4,0xA1,0x08,0xC9,0xA4,0xF0,0x3C,0x28,
|
|
0x4C,0xCE,0xA1,0x20,0xA4,0xA1,0xD0,0x06,
|
|
0xA6,0x44,0xA5,0x45,0x18,0x60,0x38,0xE9,
|
|
0xB0,0x30,0x21,0xC9,0x0A,0xB0,0x1D,0x20,
|
|
0xFE,0xA1,0x65,0x44,0xAA,0xA9,0x00,0x65,
|
|
0x45,0xA8,0x20,0xFE,0xA1,0x20,0xFE,0xA1,
|
|
0x8A,0x65,0x44,0x85,0x44,0x98,0x65,0x45,
|
|
0x85,0x45,0x90,0xCF,0x38,0x60,0x06,0x44,
|
|
0x26,0x45,0x60,0x28,0x20,0xA4,0xA1,0xF0,
|
|
0xC5,0x38,0xE9,0xB0,0x30,0xEE,0xC9,0x0A,
|
|
0x90,0x08,0xE9,0x07,0x30,0xE6,0xC9,0x10,
|
|
0xB0,0xE2,0xA2,0x04,0x20,0xFE,0xA1,0xCA,
|
|
0xD0,0xFA,0x05,0x44,0x85,0x44,0x4C,0x04,
|
|
0xA2,0xA5,0x44,0x4C,0x95,0xFE,0xA5,0x44,
|
|
0x4C,0x8B,0xFE,0xAD,0x5E,0xAA,0x0D,0x74,
|
|
0xAA,0x8D,0x5E,0xAA,0x60,0x2C,0x74,0xAA,
|
|
0x50,0x03,0x20,0xC8,0x9F,0xA9,0x70,0x4D,
|
|
0x74,0xAA,0x2D,0x5E,0xAA,0x8D,0x5E,0xAA,
|
|
0x60,0xA9,0x00,0x8D,0xB3,0xAA,0xA5,0x44,
|
|
0x48,0x20,0x16,0xA3,0x68,0x8D,0x57,0xAA,
|
|
0x4C,0xD4,0xA7,0xA9,0x05,0x20,0xAA,0xA2,
|
|
0x20,0x64,0xA7,0xA0,0x00,0x98,0x91,0x40,
|
|
0x60,0xA9,0x07,0xD0,0x02,0xA9,0x08,0x20,
|
|
0xAA,0xA2,0x4C,0xEA,0xA2,0xA9,0x0C,0xD0,
|
|
0xF6,0xAD,0x08,0x9D,0x8D,0xBD,0xB5,0xAD,
|
|
0x09,0x9D,0x8D,0xBE,0xB5,0xA9,0x09,0x8D,
|
|
0x63,0xAA,0x20,0xC8,0xA2,0x4C,0xEA,0xA2,
|
|
0x20,0xA3,0xA2,0x20,0x8C,0xA6,0xD0,0xFB,
|
|
0x4C,0x71,0xB6,0xA9,0x00,0x4C,0xD5,0xA3,
|
|
0xA9,0x01,0x8D,0x63,0xAA,0xAD,0x6C,0xAA,
|
|
0xD0,0x0A,0xAD,0x6D,0xAA,0xD0,0x05,0xA9,
|
|
0x01,0x8D,0x6C,0xAA,0xAD,0x6C,0xAA,0x8D,
|
|
0xBD,0xB5,0xAD,0x6D,0xAA,0x8D,0xBE,0xB5,
|
|
0x20,0xEA,0xA2,0xA5,0x45,0xD0,0x03,0x4C,
|
|
0xC8,0xA6,0x85,0x41,0xA5,0x44,0x85,0x40,
|
|
0x20,0x43,0xA7,0x20,0x4E,0xA7,0x20,0x1A,
|
|
0xA7,0xAD,0x63,0xAA,0x8D,0xBB,0xB5,0x4C,
|
|
0xA8,0xA6,0xAD,0x75,0xAA,0xC9,0xA0,0xF0,
|
|
0x25,0x20,0x64,0xA7,0xB0,0x3A,0x20,0xFC,
|
|
0xA2,0x4C,0xEA,0xA2,0x20,0xAF,0xA7,0xD0,
|
|
0x05,0xA9,0x00,0x8D,0xB3,0xAA,0xA0,0x00,
|
|
0x98,0x91,0x40,0x20,0x4E,0xA7,0xA9,0x02,
|
|
0x8D,0xBB,0xB5,0x4C,0xA8,0xA6,0x20,0x92,
|
|
0xA7,0xD0,0x05,0x20,0x9A,0xA7,0xF0,0x10,
|
|
0x20,0xAF,0xA7,0xF0,0xF6,0x20,0xAA,0xA7,
|
|
0xF0,0xF1,0x20,0xFC,0xA2,0x4C,0x16,0xA3,
|
|
0x60,0xA9,0x09,0x2D,0x65,0xAA,0xC9,0x09,
|
|
0xF0,0x03,0x4C,0x00,0xA0,0xA9,0x04,0x20,
|
|
0xD5,0xA3,0xAD,0x73,0xAA,0xAC,0x72,0xAA,
|
|
0x20,0xE0,0xA3,0xAD,0x6D,0xAA,0xAC,0x6C,
|
|
0xAA,0x20,0xE0,0xA3,0xAD,0x73,0xAA,0xAC,
|
|
0x72,0xAA,0x4C,0xFF,0xA3,0x20,0xA8,0xA2,
|
|
0xA9,0x7F,0x2D,0xC2,0xB5,0xC9,0x04,0xF0,
|
|
0x03,0x4C,0xD0,0xA6,0xA9,0x04,0x20,0xD5,
|
|
0xA3,0x20,0x7A,0xA4,0xAA,0xAD,0x65,0xAA,
|
|
0x29,0x01,0xD0,0x06,0x8E,0x72,0xAA,0x8C,
|
|
0x73,0xAA,0x20,0x7A,0xA4,0xAE,0x72,0xAA,
|
|
0xAC,0x73,0xAA,0x4C,0x71,0xA4,0x20,0x5D,
|
|
0xA3,0x20,0x51,0xA8,0x6C,0x72,0xAA,0xAD,
|
|
0xB6,0xAA,0xF0,0x20,0xA5,0xD6,0x10,0x03,
|
|
0x4C,0xCC,0xA6,0xA9,0x02,0x20,0xD5,0xA3,
|
|
0x38,0xA5,0xAF,0xE5,0x67,0xA8,0xA5,0xB0,
|
|
0xE5,0x68,0x20,0xE0,0xA3,0xA5,0x68,0xA4,
|
|
0x67,0x4C,0xFF,0xA3,0xA9,0x01,0x20,0xD5,
|
|
0xA3,0x38,0xA5,0x4C,0xE5,0xCA,0xA8,0xA5,
|
|
0x4D,0xE5,0xCB,0x20,0xE0,0xA3,0xA5,0xCB,
|
|
0xA4,0xCA,0x4C,0xFF,0xA3,0x8D,0xC2,0xB5,
|
|
0x48,0x20,0xA8,0xA2,0x68,0x4C,0xC4,0xA7,
|
|
0x8C,0xC1,0xB5,0x8C,0xC3,0xB5,0x8D,0xC2,
|
|
0xB5,0xA9,0x04,0x8D,0xBB,0xB5,0xA9,0x01,
|
|
0x8D,0xBC,0xB5,0x20,0xA8,0xA6,0xAD,0xC2,
|
|
0xB5,0x8D,0xC3,0xB5,0x4C,0xA8,0xA6,0x8C,
|
|
0xC3,0xB5,0x8D,0xC4,0xB5,0xA9,0x02,0x4C,
|
|
0x86,0xB6,0x20,0xA8,0xA6,0x4C,0xEA,0xA2,
|
|
0x4C,0xD0,0xA6,0x20,0x16,0xA3,0x20,0xA8,
|
|
0xA2,0xA9,0x23,0x2D,0xC2,0xB5,0xF0,0xF0,
|
|
0x8D,0xC2,0xB5,0xAD,0xB6,0xAA,0xF0,0x28,
|
|
0xA9,0x02,0x20,0xB1,0xA4,0x20,0x7A,0xA4,
|
|
0x18,0x65,0x67,0xAA,0x98,0x65,0x68,0xC5,
|
|
0x74,0xB0,0x70,0x85,0xB0,0x85,0x6A,0x86,
|
|
0xAF,0x86,0x69,0xA6,0x67,0xA4,0x68,0x20,
|
|
0x71,0xA4,0x20,0x51,0xA8,0x6C,0x60,0x9D,
|
|
0xA9,0x01,0x20,0xB1,0xA4,0x20,0x7A,0xA4,
|
|
0x38,0xA5,0x4C,0xED,0x60,0xAA,0xAA,0xA5,
|
|
0x4D,0xED,0x61,0xAA,0x90,0x45,0xA8,0xC4,
|
|
0x4B,0x90,0x40,0xF0,0x3E,0x84,0xCB,0x86,
|
|
0xCA,0x8E,0xC3,0xB5,0x8C,0xC4,0xB5,0x4C,
|
|
0x0A,0xA4,0xAD,0x0A,0x9D,0x8D,0xC3,0xB5,
|
|
0xAD,0x0B,0x9D,0x8D,0xC4,0xB5,0xA9,0x00,
|
|
0x8D,0xC2,0xB5,0xA9,0x02,0x8D,0xC1,0xB5,
|
|
0xA9,0x03,0x8D,0xBB,0xB5,0xA9,0x02,0x8D,
|
|
0xBC,0xB5,0x20,0xA8,0xA6,0xAD,0x61,0xAA,
|
|
0x8D,0xC2,0xB5,0xA8,0xAD,0x60,0xAA,0x8D,
|
|
0xC1,0xB5,0x60,0x20,0xEA,0xA2,0x4C,0xCC,
|
|
0xA6,0xCD,0xC2,0xB5,0xF0,0x1A,0xAE,0x5F,
|
|
0xAA,0x8E,0x62,0xAA,0x4A,0xF0,0x03,0x4C,
|
|
0x9E,0xA5,0xA2,0x1D,0xBD,0x75,0xAA,0x9D,
|
|
0x93,0xAA,0xCA,0x10,0xF7,0x4C,0x7A,0xA5,
|
|
0x60,0xAD,0xB6,0xAA,0xF0,0x03,0x8D,0xB7,
|
|
0xAA,0x20,0x13,0xA4,0x20,0xC8,0x9F,0x20,
|
|
0x51,0xA8,0x6C,0x58,0x9D,0xA5,0x4A,0x85,
|
|
0xCC,0xA5,0x4B,0x85,0xCD,0x6C,0x56,0x9D,
|
|
0x20,0x16,0xA4,0x20,0xC8,0x9F,0x20,0x51,
|
|
0xA8,0x6C,0x56,0x9D,0x20,0x65,0xD6,0x85,
|
|
0x33,0x85,0xD8,0x4C,0xD2,0xD7,0x20,0x65,
|
|
0x0E,0x85,0x33,0x85,0xD8,0x4C,0xD4,0x0F,
|
|
0x20,0x26,0xA5,0xA9,0x05,0x8D,0x52,0xAA,
|
|
0x4C,0x83,0x9F,0x20,0x26,0xA5,0xA9,0x01,
|
|
0x8D,0x51,0xAA,0x4C,0x83,0x9F,0x20,0x64,
|
|
0xA7,0x90,0x06,0x20,0xA3,0xA2,0x4C,0x34,
|
|
0xA5,0x20,0x4E,0xA7,0xAD,0x65,0xAA,0x29,
|
|
0x06,0xF0,0x13,0xA2,0x03,0xBD,0x6E,0xAA,
|
|
0x9D,0xBD,0xB5,0xCA,0x10,0xF7,0xA9,0x0A,
|
|
0x8D,0xBB,0xB5,0x20,0xA8,0xA6,0x60,0xA9,
|
|
0x40,0x2D,0x65,0xAA,0xF0,0x05,0xAD,0x66,
|
|
0xAA,0xD0,0x05,0xA9,0xFE,0x8D,0x66,0xAA,
|
|
0xAD,0x0D,0x9D,0x8D,0xBC,0xB5,0xA9,0x0B,
|
|
0x20,0xAA,0xA2,0x4C,0x97,0xA3,0xA9,0x06,
|
|
0x20,0xAA,0xA2,0xAD,0xBF,0xB5,0x8D,0x66,
|
|
0xAA,0x60,0xA9,0x4C,0x20,0xB2,0xA5,0xF0,
|
|
0x2E,0xA9,0x00,0x8D,0xB6,0xAA,0xA0,0x1E,
|
|
0x20,0x97,0xA0,0xA2,0x09,0xBD,0xB7,0xAA,
|
|
0x9D,0x74,0xAA,0xCA,0xD0,0xF7,0xA9,0xC0,
|
|
0x8D,0x51,0xAA,0x4C,0xD1,0xA4,0xA9,0x20,
|
|
0x20,0xB2,0xA5,0xF0,0x05,0xA9,0x01,0x4C,
|
|
0xD2,0xA6,0xA9,0x00,0x8D,0xB7,0xAA,0x4C,
|
|
0x84,0x9D,0xCD,0x00,0xE0,0xF0,0x0E,0x8D,
|
|
0x80,0xC0,0xCD,0x00,0xE0,0xF0,0x06,0x8D,
|
|
0x81,0xC0,0xCD,0x00,0xE0,0x60,0x20,0xA3,
|
|
0xA2,0xAD,0x4F,0xAA,0x8D,0xB4,0xAA,0xAD,
|
|
0x50,0xAA,0x8D,0xB5,0xAA,0xAD,0x75,0xAA,
|
|
0x8D,0xB3,0xAA,0xD0,0x0E,0x20,0x64,0xA7,
|
|
0x90,0x06,0x20,0xA3,0xA2,0x4C,0xEB,0xA5,
|
|
0x20,0x4E,0xA7,0xAD,0x65,0xAA,0x29,0x04,
|
|
0xF0,0x1B,0xAD,0x6E,0xAA,0xD0,0x08,0xAE,
|
|
0x6F,0xAA,0xF0,0x11,0xCE,0x6F,0xAA,0xCE,
|
|
0x6E,0xAA,0x20,0x8C,0xA6,0xF0,0x38,0xC9,
|
|
0x8D,0xD0,0xF7,0xF0,0xE5,0x60,0x20,0x5E,
|
|
0xA6,0xB0,0x66,0xAD,0x5C,0xAA,0x8D,0xC3,
|
|
0xB5,0xA9,0x04,0x8D,0xBB,0xB5,0xA9,0x01,
|
|
0x8D,0xBC,0xB5,0x4C,0xA8,0xA6,0x20,0x5E,
|
|
0xA6,0xB0,0x4E,0xA9,0x06,0x8D,0x52,0xAA,
|
|
0x20,0x8C,0xA6,0xD0,0x0F,0x20,0xFC,0xA2,
|
|
0xA9,0x03,0xCD,0x52,0xAA,0xF0,0xCE,0xA9,
|
|
0x05,0x4C,0xD2,0xA6,0xC9,0xE0,0x90,0x02,
|
|
0x29,0x7F,0x8D,0x5C,0xAA,0xAE,0x5A,0xAA,
|
|
0xF0,0x09,0xCA,0xBD,0x00,0x02,0x09,0x80,
|
|
0x9D,0x00,0x02,0x4C,0xB3,0x9F,0x48,0xAD,
|
|
0xB6,0xAA,0xF0,0x0E,0xA6,0x76,0xE8,0xF0,
|
|
0x0D,0xA6,0x33,0xE0,0xDD,0xF0,0x07,0x68,
|
|
0x18,0x60,0xA5,0xD9,0x30,0xF9,0x68,0x38,
|
|
0x60,0x20,0xFC,0xA2,0x20,0x5B,0xA7,0x4C,
|
|
0xB3,0x9F,0x20,0x9D,0xA6,0x20,0x4E,0xA7,
|
|
0xA9,0x03,0xD0,0xA1,0xA9,0x03,0x8D,0xBB,
|
|
0xB5,0xA9,0x01,0x8D,0xBC,0xB5,0x20,0xA8,
|
|
0xA6,0xAD,0xC3,0xB5,0x60,0xAD,0xB5,0xAA,
|
|
0x85,0x41,0xAD,0xB4,0xAA,0x85,0x40,0x60,
|
|
0x20,0x06,0xAB,0x90,0x16,0xAD,0xC5,0xB5,
|
|
0xC9,0x05,0xF0,0x03,0x4C,0x5E,0xB6,0x4C,
|
|
0x92,0xB6,0xEA,0x20,0x69,0xBA,0xA2,0x00,
|
|
0x8E,0xC3,0xB5,0x60,0xA9,0x0B,0xD0,0x0A,
|
|
0xA9,0x0C,0xD0,0x06,0xA9,0x0E,0xD0,0x02,
|
|
0xA9,0x0D,0x8D,0x5C,0xAA,0x20,0xE6,0xBF,
|
|
0xAD,0xB6,0xAA,0xF0,0x04,0xA5,0xD8,0x30,
|
|
0x0E,0xA2,0x00,0x20,0x02,0xA7,0xAE,0x5C,
|
|
0xAA,0x20,0x02,0xA7,0x20,0xC8,0x9F,0x20,
|
|
0x51,0xA8,0x20,0x5E,0xA6,0xAE,0x5C,0xAA,
|
|
0xA9,0x03,0xB0,0x03,0x6C,0x5A,0x9D,0x6C,
|
|
0x5E,0x9D,0xBD,0x3F,0xAA,0xAA,0x8E,0x63,
|
|
0xAA,0xBD,0x71,0xA9,0x48,0x09,0x80,0x20,
|
|
0xC5,0x9F,0xAE,0x63,0xAA,0xE8,0x68,0x10,
|
|
0xED,0x60,0xAD,0x66,0xAA,0x8D,0xBF,0xB5,
|
|
0xAD,0x68,0xAA,0x8D,0xC0,0xB5,0xAD,0x6A,
|
|
0xAA,0x8D,0xC1,0xB5,0xAD,0x06,0x9D,0x8D,
|
|
0xC3,0xB5,0xAD,0x07,0x9D,0x8D,0xC4,0xB5,
|
|
0xA5,0x40,0x8D,0x4F,0xAA,0xA5,0x41,0x8D,
|
|
0x50,0xAA,0x60,0xA0,0x1D,0xB9,0x75,0xAA,
|
|
0x91,0x40,0x88,0x10,0xF8,0x60,0xA0,0x1E,
|
|
0xB1,0x40,0x99,0xA9,0xB5,0xC8,0xC0,0x26,
|
|
0xD0,0xF6,0x60,0xA0,0x00,0x8C,0x51,0xAA,
|
|
0x8C,0x52,0xAA,0x60,0xA9,0x00,0x85,0x45,
|
|
0x20,0x92,0xA7,0x4C,0x73,0xA7,0x20,0x9A,
|
|
0xA7,0xF0,0x1D,0x20,0xAA,0xA7,0xD0,0x0A,
|
|
0xA5,0x40,0x85,0x44,0xA5,0x41,0x85,0x45,
|
|
0xD0,0xEC,0xA0,0x1D,0xB1,0x40,0xD9,0x75,
|
|
0xAA,0xD0,0xE3,0x88,0x10,0xF6,0x18,0x60,
|
|
0x38,0x60,0xAD,0x00,0x9D,0xAE,0x01,0x9D,
|
|
0xD0,0x0A,0xA0,0x25,0xB1,0x40,0xF0,0x09,
|
|
0xAA,0x88,0xB1,0x40,0x86,0x41,0x85,0x40,
|
|
0x8A,0x60,0xA0,0x00,0xB1,0x40,0x60,0xAD,
|
|
0xB3,0xAA,0xF0,0x0E,0xAD,0xB4,0xAA,0xC5,
|
|
0x40,0xD0,0x08,0xAD,0xB5,0xAA,0xC5,0x41,
|
|
0xF0,0x01,0xCA,0x60,0x4D,0xC2,0xB5,0xF0,
|
|
0x0A,0x29,0x7F,0xF0,0x06,0x20,0xEA,0xA2,
|
|
0x4C,0xD0,0xA6,0x60,0x38,0xAD,0x00,0x9D,
|
|
0x85,0x40,0xAD,0x01,0x9D,0x85,0x41,0xAD,
|
|
0x57,0xAA,0x8D,0x63,0xAA,0xA0,0x00,0x98,
|
|
0x91,0x40,0xA0,0x1E,0x38,0xA5,0x40,0xE9,
|
|
0x2D,0x91,0x40,0x48,0xA5,0x41,0xE9,0x00,
|
|
0xC8,0x91,0x40,0xAA,0xCA,0x68,0x48,0xC8,
|
|
0x91,0x40,0x8A,0xC8,0x91,0x40,0xAA,0xCA,
|
|
0x68,0x48,0xC8,0x91,0x40,0xC8,0x8A,0x91,
|
|
0x40,0xCE,0x63,0xAA,0xF0,0x17,0xAA,0x68,
|
|
0x38,0xE9,0x26,0xC8,0x91,0x40,0x48,0x8A,
|
|
0xE9,0x00,0xC8,0x91,0x40,0x85,0x41,0x68,
|
|
0x85,0x40,0x4C,0xE5,0xA7,0x48,0xA9,0x00,
|
|
0xC8,0x91,0x40,0xC8,0x91,0x40,0xAD,0xB6,
|
|
0xAA,0xF0,0x0B,0x68,0x85,0x74,0x85,0x70,
|
|
0x68,0x85,0x73,0x85,0x6F,0x60,0x68,0x85,
|
|
0x4D,0x85,0xCB,0x68,0x85,0x4C,0x85,0xCA,
|
|
0x60,0xA5,0x39,0xCD,0x03,0x9D,0xF0,0x12,
|
|
0x8D,0x56,0xAA,0xA5,0x38,0x8D,0x55,0xAA,
|
|
0xAD,0x02,0x9D,0x85,0x38,0xAD,0x03,0x9D,
|
|
0x85,0x39,0xA5,0x37,0xCD,0x05,0x9D,0xF0,
|
|
0x12,0x8D,0x54,0xAA,0xA5,0x36,0x8D,0x53,
|
|
0xAA,0xAD,0x04,0x9D,0x85,0x36,0xAD,0x05,
|
|
0x9D,0x85,0x37,0x60,0x49,0x4E,0x49,0xD4,
|
|
0x4C,0x4F,0x41,0xC4,0x53,0x41,0x56,0xC5,
|
|
0x52,0x55,0xCE,0x43,0x48,0x41,0x49,0xCE,
|
|
0x44,0x45,0x4C,0x45,0x54,0xC5,0x4C,0x4F,
|
|
0x43,0xCB,0x55,0x4E,0x4C,0x4F,0x43,0xCB,
|
|
0x43,0x4C,0x4F,0x53,0xC5,0x52,0x45,0x41,
|
|
0xC4,0x45,0x58,0x45,0xC3,0x57,0x52,0x49,
|
|
0x54,0xC5,0x50,0x4F,0x53,0x49,0x54,0x49,
|
|
0x4F,0xCE,0x4F,0x50,0x45,0xCE,0x41,0x50,
|
|
0x50,0x45,0x4E,0xC4,0x52,0x45,0x4E,0x41,
|
|
0x4D,0xC5,0x43,0x41,0x54,0x41,0x4C,0x4F,
|
|
0xC7,0x4D,0x4F,0xCE,0x4E,0x4F,0x4D,0x4F,
|
|
0xCE,0x50,0x52,0xA3,0x49,0x4E,0xA3,0x4D,
|
|
0x41,0x58,0x46,0x49,0x4C,0x45,0xD3,0x46,
|
|
0xD0,0x49,0x4E,0xD4,0x42,0x53,0x41,0x56,
|
|
0xC5,0x42,0x4C,0x4F,0x41,0xC4,0x42,0x52,
|
|
0x55,0xCE,0x56,0x45,0x52,0x49,0x46,0xD9,
|
|
0x00,0x21,0x70,0xA0,0x70,0xA1,0x70,0xA0,
|
|
0x70,0x20,0x70,0x20,0x70,0x20,0x70,0x20,
|
|
0x70,0x60,0x00,0x22,0x06,0x20,0x74,0x22,
|
|
0x06,0x22,0x04,0x23,0x78,0x22,0x70,0x30,
|
|
0x70,0x40,0x70,0x40,0x80,0x40,0x80,0x08,
|
|
0x00,0x08,0x00,0x04,0x00,0x40,0x70,0x40,
|
|
0x00,0x21,0x79,0x20,0x71,0x20,0x71,0x20,
|
|
0x70,0xD6,0xC4,0xD3,0xCC,0xD2,0xC2,0xC1,
|
|
0xC3,0xC9,0xCF,0x40,0x20,0x10,0x08,0x04,
|
|
0x02,0x01,0xC0,0xA0,0x90,0x00,0x00,0xFE,
|
|
0x00,0x01,0x00,0x02,0x00,0x01,0x00,0x07,
|
|
0x00,0x01,0x00,0xFF,0x7F,0x00,0x00,0xFF,
|
|
0x7F,0x00,0x00,0xFF,0x7F,0x00,0x00,0xFF,
|
|
0xFF,0x0D,0x07,0x8D,0x4C,0x41,0x4E,0x47,
|
|
0x55,0x41,0x47,0x45,0x20,0x4E,0x4F,0x54,
|
|
0x20,0x41,0x56,0x41,0x49,0x4C,0x41,0x42,
|
|
0x4C,0xC5,0x52,0x41,0x4E,0x47,0x45,0x20,
|
|
0x45,0x52,0x52,0x4F,0xD2,0x57,0x52,0x49,
|
|
0x54,0x45,0x20,0x50,0x52,0x4F,0x54,0x45,
|
|
0x43,0x54,0x45,0xC4,0x45,0x4E,0x44,0x20,
|
|
0x4F,0x46,0x20,0x44,0x41,0x54,0xC1,0x46,
|
|
0x49,0x4C,0x45,0x20,0x4E,0x4F,0x54,0x20,
|
|
0x46,0x4F,0x55,0x4E,0xC4,0x56,0x4F,0x4C,
|
|
0x55,0x4D,0x45,0x20,0x4D,0x49,0x53,0x4D,
|
|
0x41,0x54,0x43,0xC8,0x49,0x2F,0x4F,0x20,
|
|
0x45,0x52,0x52,0x4F,0xD2,0x44,0x49,0x53,
|
|
0x4B,0x20,0x46,0x55,0x4C,0xCC,0x46,0x49,
|
|
0x4C,0x45,0x20,0x4C,0x4F,0x43,0x4B,0x45,
|
|
0xC4,0x53,0x59,0x4E,0x54,0x41,0x58,0x20,
|
|
0x45,0x52,0x52,0x4F,0xD2,0x4E,0x4F,0x20,
|
|
0x42,0x55,0x46,0x46,0x45,0x52,0x53,0x20,
|
|
0x41,0x56,0x41,0x49,0x4C,0x41,0x42,0x4C,
|
|
0xC5,0x46,0x49,0x4C,0x45,0x20,0x54,0x59,
|
|
0x50,0x45,0x20,0x4D,0x49,0x53,0x4D,0x41,
|
|
0x54,0x43,0xC8,0x50,0x52,0x4F,0x47,0x52,
|
|
0x41,0x4D,0x20,0x54,0x4F,0x4F,0x20,0x4C,
|
|
0x41,0x52,0x47,0xC5,0x4E,0x4F,0x54,0x20,
|
|
0x44,0x49,0x52,0x45,0x43,0x54,0x20,0x43,
|
|
0x4F,0x4D,0x4D,0x41,0x4E,0xC4,0x8D,0x00,
|
|
0x03,0x19,0x19,0x24,0x33,0x3E,0x4C,0x5B,
|
|
0x64,0x6D,0x78,0x84,0x98,0xAA,0xBB,0x2D,
|
|
0x98,0x00,0x02,0x02,0xC1,0x1B,0xFD,0x03,
|
|
0x03,0xF0,0x58,0x00,0xA0,0x06,0x00,0x1B,
|
|
0x44,0x04,0x00,0x00,0x00,0x00,0x00,0x00,
|
|
0x01,0x00,0x06,0x00,0x00,0x00,0x00,0x00,
|
|
0x00,0x00,0x00,0x10,0x00,0x00,0xCF,0xC1,
|
|
0xC4,0xC5,0xD2,0xAE,0xCF,0xC2,0xCA,0xB0,
|
|
0xA0,0xA0,0xA0,0xA0,0xA0,0xA0,0xA0,0xA0,
|
|
0xA0,0xA0,0xA0,0xA0,0xA0,0xA0,0xA0,0xA0,
|
|
0xA0,0xA0,0xA0,0xA0,0xA0,0xA0,0xA0,0xA0,
|
|
0xA0,0xA0,0xA0,0xA0,0xA0,0xA0,0xA0,0xA0,
|
|
0xA0,0xA0,0xA0,0xA0,0xA0,0xA0,0xA0,0xA0,
|
|
0xA0,0xA0,0xA0,0xA0,0xA0,0xA0,0xA0,0xA0,
|
|
0xA0,0x03,0x84,0x00,0x00,0x00,0x40,0x00,
|
|
0xC1,0xD0,0xD0,0xCC,0xC5,0xD3,0xCF,0xC6,
|
|
0xD4,0xE8,0xB7,0xBB,0xB3,0xBB,0xB4,0x00,
|
|
0xC0,0x7E,0xB3,0x21,0xAB,0x05,0xAC,0x57,
|
|
0xAC,0x6F,0xAC,0x2A,0xAD,0x97,0xAD,0xEE,
|
|
0xAC,0xF5,0xAC,0x39,0xAC,0x11,0xAD,0x8D,
|
|
0xAE,0x17,0xAD,0x7E,0xB3,0x7E,0xB3,0x89,
|
|
0xAC,0x95,0xAC,0x86,0xAC,0x92,0xAC,0x7E,
|
|
0xB3,0x7E,0xB3,0xBD,0xAC,0xC9,0xAC,0xBA,
|
|
0xAC,0xC6,0xAC,0x7E,0xB3,0xE0,0x00,0xF0,
|
|
0x02,0xA2,0x02,0x8E,0x5F,0xAA,0xBA,0x8E,
|
|
0x9B,0xB3,0x20,0x6A,0xAE,0xAD,0xBB,0xB5,
|
|
0xC9,0x0D,0xB0,0x0B,0x0A,0xAA,0xBD,0xCA,
|
|
0xAA,0x48,0xBD,0xC9,0xAA,0x48,0x60,0x4C,
|
|
0x63,0xB3,0x20,0x28,0xAB,0x4C,0x7F,0xB3,
|
|
0x20,0xDC,0xAB,0xA9,0x01,0x8D,0xE3,0xB5,
|
|
0xAE,0xBE,0xB5,0xAD,0xBD,0xB5,0xD0,0x05,
|
|
0xE0,0x00,0xD0,0x01,0xE8,0x8D,0xE8,0xB5,
|
|
0x8E,0xE9,0xB5,0x20,0xC9,0xB1,0x90,0x5E,
|
|
0x8E,0x9C,0xB3,0xAE,0x5F,0xAA,0xBD,0x09,
|
|
0xA9,0xAE,0x9C,0xB3,0x4A,0xB0,0x0D,0xAD,
|
|
0x51,0xAA,0xC9,0xC0,0xD0,0x03,0x4C,0x5F,
|
|
0xB3,0x4C,0x73,0xB3,0xA9,0x00,0x9D,0xE8,
|
|
0xB4,0xA9,0x01,0x9D,0xE7,0xB4,0x8E,0x9C,
|
|
0xB3,0x20,0x44,0xB2,0xAE,0x9C,0xB3,0x9D,
|
|
0xC7,0xB4,0x8D,0xD2,0xB5,0x8D,0xD4,0xB5,
|
|
0xAD,0xF1,0xB5,0x9D,0xC6,0xB4,0x8D,0xD1,
|
|
0xB5,0x8D,0xD3,0xB5,0xAD,0xC2,0xB5,0x9D,
|
|
0xC8,0xB4,0x20,0x37,0xB0,0x20,0x0C,0xAF,
|
|
0x20,0xD6,0xB7,0x20,0x3A,0xAF,0xAE,0x9C,
|
|
0xB3,0xA9,0x06,0x8D,0xC5,0xB5,0xBD,0xC6,
|
|
0xB4,0x8D,0xD1,0xB5,0xBD,0xC7,0xB4,0x8D,
|
|
0xD2,0xB5,0xBD,0xC8,0xB4,0x8D,0xC2,0xB5,
|
|
0x8D,0xF6,0xB5,0xBD,0xE7,0xB4,0x8D,0xEE,
|
|
0xB5,0xBD,0xE8,0xB4,0x8D,0xEF,0xB5,0x8E,
|
|
0xD9,0xB5,0xA9,0xFF,0x8D,0xE0,0xB5,0x8D,
|
|
0xE1,0xB5,0xAD,0xE2,0xB3,0x8D,0xDA,0xB5,
|
|
0x18,0x4C,0x5E,0xAF,0xA9,0x00,0xAA,0x9D,
|
|
0xD1,0xB5,0xE8,0xE0,0x2D,0xD0,0xF8,0xAD,
|
|
0xBF,0xB5,0x49,0xFF,0x8D,0xF9,0xB5,0xAD,
|
|
0xC0,0xB5,0x8D,0xF8,0xB5,0xAD,0xC1,0xB5,
|
|
0x0A,0x0A,0x0A,0x0A,0xAA,0x8E,0xF7,0xB5,
|
|
0xA9,0x11,0x8D,0xFA,0xB5,0x60,0x20,0x1D,
|
|
0xAF,0x20,0x34,0xAF,0x20,0xC3,0xB2,0xA9,
|
|
0x02,0x2D,0xD5,0xB5,0xF0,0x21,0x20,0xF7,
|
|
0xAF,0xA9,0x00,0x18,0x20,0x11,0xB0,0x38,
|
|
0xCE,0xD8,0xB5,0xD0,0xF7,0xAE,0xD9,0xB5,
|
|
0xAD,0xEE,0xB5,0x9D,0xE7,0xB4,0xAD,0xEF,
|
|
0xB5,0x9D,0xE8,0xB4,0x20,0x37,0xB0,0x4C,
|
|
0x7F,0xB3,0x20,0x28,0xAB,0xAD,0xF6,0xB5,
|
|
0x30,0x2B,0xAD,0xBD,0xB5,0x85,0x42,0xAD,
|
|
0xBE,0xB5,0x85,0x43,0xAE,0x9C,0xB3,0x20,
|
|
0x1C,0xB2,0x20,0x37,0xB0,0x4C,0x7F,0xB3,
|
|
0xAD,0xBC,0xB5,0xC9,0x05,0xB0,0x0B,0x0A,
|
|
0xAA,0xBD,0xE6,0xAA,0x48,0xBD,0xE5,0xAA,
|
|
0x48,0x60,0x4C,0x67,0xB3,0x4C,0x7B,0xB3,
|
|
0xAD,0xF6,0xB5,0x30,0xF8,0xAD,0xBC,0xB5,
|
|
0xC9,0x05,0xB0,0xEE,0x0A,0xAA,0xBD,0xF2,
|
|
0xAA,0x48,0xBD,0xF1,0xAA,0x48,0x60,0x20,
|
|
0x00,0xB3,0x20,0xA8,0xAC,0x8D,0xC3,0xB5,
|
|
0x4C,0x7F,0xB3,0x20,0x00,0xB3,0x20,0xB5,
|
|
0xB1,0x20,0xA8,0xAC,0x48,0x20,0xA2,0xB1,
|
|
0xA0,0x00,0x68,0x91,0x42,0x4C,0x96,0xAC,
|
|
0x20,0xB6,0xB0,0xB0,0x0B,0xB1,0x42,0x48,
|
|
0x20,0x5B,0xB1,0x20,0x94,0xB1,0x68,0x60,
|
|
0x4C,0x6F,0xB3,0x20,0x00,0xB3,0xAD,0xC3,
|
|
0xB5,0x20,0xDA,0xAC,0x4C,0x7F,0xB3,0x20,
|
|
0x00,0xB3,0x20,0xA2,0xB1,0xA0,0x00,0xB1,
|
|
0x42,0x20,0xDA,0xAC,0x20,0xB5,0xB1,0x4C,
|
|
0xCA,0xAC,0x48,0x20,0xB6,0xB0,0x68,0x91,
|
|
0x42,0xA9,0x40,0x0D,0xD5,0xB5,0x8D,0xD5,
|
|
0xB5,0x20,0x5B,0xB1,0x4C,0x94,0xB1,0xA9,
|
|
0x80,0x8D,0x9E,0xB3,0xD0,0x05,0xA9,0x00,
|
|
0x8D,0x9E,0xB3,0x20,0x28,0xAB,0xAE,0x9C,
|
|
0xB3,0xBD,0xC8,0xB4,0x29,0x7F,0x0D,0x9E,
|
|
0xB3,0x9D,0xC8,0xB4,0x20,0x37,0xB0,0x4C,
|
|
0x7F,0xB3,0x20,0x00,0xB3,0x4C,0x7F,0xB3,
|
|
0x20,0x28,0xAB,0x20,0xB6,0xB0,0xB0,0xEF,
|
|
0xEE,0xE4,0xB5,0xD0,0xF6,0xEE,0xE5,0xB5,
|
|
0x4C,0x1B,0xAD,0x20,0x28,0xAB,0xAE,0x9C,
|
|
0xB3,0xBD,0xC8,0xB4,0x10,0x03,0x4C,0x7B,
|
|
0xB3,0xAE,0x9C,0xB3,0xBD,0xC6,0xB4,0x8D,
|
|
0xD1,0xB5,0x9D,0xE6,0xB4,0xA9,0xFF,0x9D,
|
|
0xC6,0xB4,0xBC,0xC7,0xB4,0x8C,0xD2,0xB5,
|
|
0x20,0x37,0xB0,0x18,0x20,0x5E,0xAF,0xB0,
|
|
0x2A,0x20,0x0C,0xAF,0xA0,0x0C,0x8C,0x9C,
|
|
0xB3,0xB1,0x42,0x30,0x0B,0xF0,0x09,0x48,
|
|
0xC8,0xB1,0x42,0xA8,0x68,0x20,0x89,0xAD,
|
|
0xAC,0x9C,0xB3,0xC8,0xC8,0xD0,0xE7,0xAD,
|
|
0xD3,0xB5,0xAC,0xD4,0xB5,0x20,0x89,0xAD,
|
|
0x38,0xB0,0xD1,0x20,0xFB,0xAF,0x4C,0x7F,
|
|
0xB3,0x38,0x20,0xDD,0xB2,0xA9,0x00,0xA2,
|
|
0x05,0x9D,0xF0,0xB5,0xCA,0x10,0xFA,0x60,
|
|
0x20,0xDC,0xAB,0xA9,0xFF,0x8D,0xF9,0xB5,
|
|
0x20,0xF7,0xAF,0xA9,0x16,0x8D,0x9D,0xB3,
|
|
0x20,0x2F,0xAE,0x20,0x2F,0xAE,0xA2,0x0B,
|
|
0xBD,0xAF,0xB3,0x20,0xED,0xFD,0xCA,0x10,
|
|
0xF7,0x86,0x45,0xAD,0xF6,0xB7,0x85,0x44,
|
|
0x20,0x42,0xAE,0x20,0x2F,0xAE,0x20,0x2F,
|
|
0xAE,0x18,0x20,0x11,0xB0,0xB0,0x5D,0xA2,
|
|
0x00,0x8E,0x9C,0xB3,0xBD,0xC6,0xB4,0xF0,
|
|
0x53,0x30,0x4A,0xA0,0xA0,0xBD,0xC8,0xB4,
|
|
0x10,0x02,0xA0,0xAA,0x98,0x20,0xED,0xFD,
|
|
0xBD,0xC8,0xB4,0x29,0x7F,0xA0,0x07,0x0A,
|
|
0x0A,0xB0,0x03,0x88,0xD0,0xFA,0xB9,0xA7,
|
|
0xB3,0x20,0xED,0xFD,0xA9,0xA0,0x20,0xED,
|
|
0xFD,0xBD,0xE7,0xB4,0x85,0x44,0xBD,0xE8,
|
|
0xB4,0x85,0x45,0x20,0x42,0xAE,0xA9,0xA0,
|
|
0x20,0xED,0xFD,0xE8,0xE8,0xE8,0xA0,0x1D,
|
|
0xBD,0xC6,0xB4,0x20,0xED,0xFD,0xE8,0x88,
|
|
0x10,0xF6,0x20,0x2F,0xAE,0x20,0x30,0xB2,
|
|
0x90,0xA7,0xB0,0x9E,0x4C,0x7F,0xB3,0xA9,
|
|
0x8D,0x20,0xED,0xFD,0xCE,0x9D,0xB3,0xD0,
|
|
0x08,0x20,0x0C,0xFD,0xA9,0x15,0x8D,0x9D,
|
|
0xB3,0x60,0xA0,0x02,0xA9,0x00,0x48,0xA5,
|
|
0x44,0xD9,0xA4,0xB3,0x90,0x12,0xF9,0xA4,
|
|
0xB3,0x85,0x44,0xA5,0x45,0xE9,0x00,0x85,
|
|
0x45,0x68,0x69,0x00,0x48,0x4C,0x47,0xAE,
|
|
0x68,0x09,0xB0,0x20,0xED,0xFD,0x88,0x10,
|
|
0xDB,0x60,0x20,0x08,0xAF,0xA0,0x00,0x8C,
|
|
0xC5,0xB5,0xB1,0x42,0x99,0xD1,0xB5,0xC8,
|
|
0xC0,0x2D,0xD0,0xF6,0x18,0x60,0x20,0x08,
|
|
0xAF,0xA0,0x00,0xB9,0xD1,0xB5,0x91,0x42,
|
|
0xC8,0xC0,0x2D,0xD0,0xF6,0x60,0x20,0xDC,
|
|
0xAB,0xA9,0x04,0x20,0x58,0xB0,0xAD,0xF9,
|
|
0xB5,0x49,0xFF,0x8D,0xC1,0xB3,0xA9,0x11,
|
|
0x8D,0xEB,0xB3,0xA9,0x01,0x8D,0xEC,0xB3,
|
|
0xA2,0x38,0xA9,0x00,0x9D,0xBB,0xB3,0xE8,
|
|
0xD0,0xFA,0xA2,0x0C,0xE0,0x8C,0xF0,0x14,
|
|
0xA0,0x03,0xB9,0xA0,0xB3,0x9D,0xF3,0xB3,
|
|
0xE8,0x88,0x10,0xF6,0xE0,0x44,0xD0,0xEC,
|
|
0xA2,0x48,0xD0,0xE8,0x20,0xFB,0xAF,0xA2,
|
|
0x00,0x8A,0x9D,0xBB,0xB4,0xE8,0xD0,0xFA,
|
|
0x20,0x45,0xB0,0xA9,0x11,0xAC,0xF0,0xB3,
|
|
0x88,0x88,0x8D,0xEC,0xB7,0x8D,0xBC,0xB4,
|
|
0x8C,0xBD,0xB4,0xC8,0x8C,0xED,0xB7,0xA9,
|
|
0x02,0x20,0x58,0xB0,0xAC,0xBD,0xB4,0x88,
|
|
0x30,0x05,0xD0,0xEC,0x98,0xF0,0xE6,0x20,
|
|
0xC2,0xB7,0x20,0x4A,0xB7,0x4C,0x7F,0xB3,
|
|
0xA2,0x00,0xF0,0x06,0xA2,0x02,0xD0,0x02,
|
|
0xA2,0x04,0xBD,0xC7,0xB5,0x85,0x42,0xBD,
|
|
0xC8,0xB5,0x85,0x43,0x60,0x2C,0xD5,0xB5,
|
|
0x70,0x01,0x60,0x20,0xE4,0xAF,0xA9,0x02,
|
|
0x20,0x52,0xB0,0xA9,0xBF,0x2D,0xD5,0xB5,
|
|
0x8D,0xD5,0xB5,0x60,0xAD,0xD5,0xB5,0x30,
|
|
0x01,0x60,0x20,0x4B,0xAF,0xA9,0x02,0x20,
|
|
0x52,0xB0,0xA9,0x7F,0x2D,0xD5,0xB5,0x8D,
|
|
0xD5,0xB5,0x60,0xAD,0xC9,0xB5,0x8D,0xF0,
|
|
0xB7,0xAD,0xCA,0xB5,0x8D,0xF1,0xB7,0xAE,
|
|
0xD3,0xB5,0xAC,0xD4,0xB5,0x60,0x08,0x20,
|
|
0x34,0xAF,0x20,0x4B,0xAF,0x20,0x0C,0xAF,
|
|
0x28,0xB0,0x09,0xAE,0xD1,0xB5,0xAC,0xD2,
|
|
0xB5,0x4C,0xB5,0xAF,0xA0,0x01,0xB1,0x42,
|
|
0xF0,0x08,0xAA,0xC8,0xB1,0x42,0xA8,0x4C,
|
|
0xB5,0xAF,0xAD,0xBB,0xB5,0xC9,0x04,0xF0,
|
|
0x02,0x38,0x60,0x20,0x44,0xB2,0xA0,0x02,
|
|
0x91,0x42,0x48,0x88,0xAD,0xF1,0xB5,0x91,
|
|
0x42,0x48,0x20,0x3A,0xAF,0x20,0xD6,0xB7,
|
|
0xA0,0x05,0xAD,0xDE,0xB5,0x91,0x42,0xC8,
|
|
0xAD,0xDF,0xB5,0x91,0x42,0x68,0xAA,0x68,
|
|
0xA8,0xA9,0x02,0xD0,0x02,0xA9,0x01,0x8E,
|
|
0xD3,0xB5,0x8C,0xD4,0xB5,0x20,0x52,0xB0,
|
|
0xA0,0x05,0xB1,0x42,0x8D,0xDC,0xB5,0x18,
|
|
0x6D,0xDA,0xB5,0x8D,0xDE,0xB5,0xC8,0xB1,
|
|
0x42,0x8D,0xDD,0xB5,0x6D,0xDB,0xB5,0x8D,
|
|
0xDF,0xB5,0x18,0x60,0x20,0xE4,0xAF,0xA9,
|
|
0x01,0x4C,0x52,0xB0,0xAC,0xCB,0xB5,0xAD,
|
|
0xCC,0xB5,0x8C,0xF0,0xB7,0x8D,0xF1,0xB7,
|
|
0xAE,0xD6,0xB5,0xAC,0xD7,0xB5,0x60,0xA9,
|
|
0x01,0xD0,0x02,0xA9,0x02,0xAC,0xC3,0xAA,
|
|
0x8C,0xF0,0xB7,0xAC,0xC4,0xAA,0x8C,0xF1,
|
|
0xB7,0xAE,0xFA,0xB5,0xA0,0x00,0x4C,0x52,
|
|
0xB0,0x08,0x20,0x45,0xB0,0x28,0xB0,0x08,
|
|
0xAC,0xBD,0xB3,0xAE,0xBC,0xB3,0xD0,0x0A,
|
|
0xAE,0xBC,0xB4,0xD0,0x02,0x38,0x60,0xAC,
|
|
0xBD,0xB4,0x8E,0x97,0xB3,0x8C,0x98,0xB3,
|
|
0xA9,0x01,0x20,0x52,0xB0,0x18,0x60,0x20,
|
|
0x45,0xB0,0xAE,0x97,0xB3,0xAC,0x98,0xB3,
|
|
0xA9,0x02,0x4C,0x52,0xB0,0xAD,0xC5,0xAA,
|
|
0x8D,0xF0,0xB7,0xAD,0xC6,0xAA,0x8D,0xF1,
|
|
0xB7,0x60,0x8E,0xEC,0xB7,0x8C,0xED,0xB7,
|
|
0x8D,0xF4,0xB7,0xC9,0x02,0xD0,0x06,0x0D,
|
|
0xD5,0xB5,0x8D,0xD5,0xB5,0xAD,0xF9,0xB5,
|
|
0x49,0xFF,0x8D,0xEB,0xB7,0xAD,0xF7,0xB5,
|
|
0x8D,0xE9,0xB7,0xAD,0xF8,0xB5,0x8D,0xEA,
|
|
0xB7,0xAD,0xE2,0xB5,0x8D,0xF2,0xB7,0xAD,
|
|
0xE3,0xB5,0x8D,0xF3,0xB7,0xA9,0x01,0x8D,
|
|
0xE8,0xB7,0xAC,0xC1,0xAA,0xAD,0xC2,0xAA,
|
|
0x20,0xB5,0xB7,0xAD,0xF6,0xB7,0x8D,0xBF,
|
|
0xB5,0xA9,0xFF,0x8D,0xEB,0xB7,0xB0,0x01,
|
|
0x60,0xAD,0xF5,0xB7,0xA0,0x07,0xC9,0x20,
|
|
0xF0,0x08,0xA0,0x04,0xC9,0x10,0xF0,0x02,
|
|
0xA0,0x08,0x98,0x4C,0x85,0xB3,0xAD,0xE4,
|
|
0xB5,0xCD,0xE0,0xB5,0xD0,0x08,0xAD,0xE5,
|
|
0xB5,0xCD,0xE1,0xB5,0xF0,0x66,0x20,0x1D,
|
|
0xAF,0xAD,0xE5,0xB5,0xCD,0xDD,0xB5,0x90,
|
|
0x1C,0xD0,0x08,0xAD,0xE4,0xB5,0xCD,0xDC,
|
|
0xB5,0x90,0x12,0xAD,0xE5,0xB5,0xCD,0xDF,
|
|
0xB5,0x90,0x10,0xD0,0x08,0xAD,0xE4,0xB5,
|
|
0xCD,0xDE,0xB5,0x90,0x06,0x20,0x5E,0xAF,
|
|
0x90,0xD7,0x60,0x38,0xAD,0xE4,0xB5,0xED,
|
|
0xDC,0xB5,0x0A,0x69,0x0C,0xA8,0x20,0x0C,
|
|
0xAF,0xB1,0x42,0xD0,0x0F,0xAD,0xBB,0xB5,
|
|
0xC9,0x04,0xF0,0x02,0x38,0x60,0x20,0x34,
|
|
0xB1,0x4C,0x20,0xB1,0x8D,0xD6,0xB5,0xC8,
|
|
0xB1,0x42,0x8D,0xD7,0xB5,0x20,0xDC,0xAF,
|
|
0xAD,0xE4,0xB5,0x8D,0xE0,0xB5,0xAD,0xE5,
|
|
0xB5,0x8D,0xE1,0xB5,0x20,0x10,0xAF,0xAC,
|
|
0xE6,0xB5,0x18,0x60,0x8C,0x9D,0xB3,0x20,
|
|
0x44,0xB2,0xAC,0x9D,0xB3,0xC8,0x91,0x42,
|
|
0x8D,0xD7,0xB5,0x88,0xAD,0xF1,0xB5,0x91,
|
|
0x42,0x8D,0xD6,0xB5,0x20,0x10,0xAF,0x20,
|
|
0xD6,0xB7,0xA9,0xC0,0x0D,0xD5,0xB5,0x8D,
|
|
0xD5,0xB5,0x60,0xAE,0xEA,0xB5,0x8E,0xBD,
|
|
0xB5,0xAE,0xEB,0xB5,0x8E,0xBE,0xB5,0xAE,
|
|
0xEC,0xB5,0xAC,0xED,0xB5,0x8E,0xBF,0xB5,
|
|
0x8C,0xC0,0xB5,0xE8,0xD0,0x01,0xC8,0xCC,
|
|
0xE9,0xB5,0xD0,0x11,0xEC,0xE8,0xB5,0xD0,
|
|
0x0C,0xA2,0x00,0xA0,0x00,0xEE,0xEA,0xB5,
|
|
0xD0,0x03,0xEE,0xEB,0xB5,0x8E,0xEC,0xB5,
|
|
0x8C,0xED,0xB5,0x60,0xEE,0xE6,0xB5,0xD0,
|
|
0x08,0xEE,0xE4,0xB5,0xD0,0x03,0xEE,0xE5,
|
|
0xB5,0x60,0xAC,0xC3,0xB5,0xAE,0xC4,0xB5,
|
|
0x84,0x42,0x86,0x43,0xEE,0xC3,0xB5,0xD0,
|
|
0x03,0xEE,0xC4,0xB5,0x60,0xAC,0xC1,0xB5,
|
|
0xD0,0x08,0xAE,0xC2,0xB5,0xF0,0x07,0xCE,
|
|
0xC2,0xB5,0xCE,0xC1,0xB5,0x60,0x4C,0x7F,
|
|
0xB3,0x20,0xF7,0xAF,0xAD,0xC3,0xB5,0x85,
|
|
0x42,0xAD,0xC4,0xB5,0x85,0x43,0xA9,0x01,
|
|
0x8D,0x9D,0xB3,0xA9,0x00,0x8D,0xD8,0xB5,
|
|
0x18,0xEE,0xD8,0xB5,0x20,0x11,0xB0,0xB0,
|
|
0x51,0xA2,0x00,0x8E,0x9C,0xB3,0xBD,0xC6,
|
|
0xB4,0xF0,0x1F,0x30,0x22,0xA0,0x00,0xE8,
|
|
0xE8,0xE8,0xB1,0x42,0xDD,0xC6,0xB4,0xD0,
|
|
0x0A,0xC8,0xC0,0x1E,0xD0,0xF3,0xAE,0x9C,
|
|
0xB3,0x18,0x60,0x20,0x30,0xB2,0x90,0xDB,
|
|
0xB0,0xCF,0xAC,0x9D,0xB3,0xD0,0xC1,0xAC,
|
|
0x9D,0xB3,0xD0,0xEF,0xA0,0x00,0xE8,0xE8,
|
|
0xE8,0xB1,0x42,0x9D,0xC6,0xB4,0xC8,0xC0,
|
|
0x1E,0xD0,0xF5,0xAE,0x9C,0xB3,0x38,0x60,
|
|
0x18,0xAD,0x9C,0xB3,0x69,0x23,0xAA,0xE0,
|
|
0xF5,0x60,0xA9,0x00,0xAC,0x9D,0xB3,0xD0,
|
|
0x97,0x4C,0x77,0xB3,0xAD,0xF1,0xB5,0xF0,
|
|
0x21,0xCE,0xF0,0xB5,0x30,0x17,0x18,0xA2,
|
|
0x04,0x3E,0xF1,0xB5,0xCA,0xD0,0xFA,0x90,
|
|
0xF0,0xEE,0xEE,0xB5,0xD0,0x03,0xEE,0xEF,
|
|
0xB5,0xAD,0xF0,0xB5,0x60,0xA9,0x00,0x8D,
|
|
0xF1,0xB5,0xA9,0x00,0x8D,0x9E,0xB3,0x20,
|
|
0xF7,0xAF,0x18,0xAD,0xEB,0xB3,0x6D,0xEC,
|
|
0xB3,0xF0,0x09,0xCD,0xEF,0xB3,0x90,0x14,
|
|
0xA9,0xFF,0xD0,0x0A,0xAD,0x9E,0xB3,0xD0,
|
|
0x37,0xA9,0x01,0x8D,0x9E,0xB3,0x8D,0xEC,
|
|
0xB3,0x18,0x69,0x11,0x8D,0xEB,0xB3,0x8D,
|
|
0xF1,0xB5,0xA8,0x0A,0x0A,0xA8,0xA2,0x04,
|
|
0x18,0xB9,0xF6,0xB3,0x9D,0xF1,0xB5,0xF0,
|
|
0x06,0x38,0xA9,0x00,0x99,0xF6,0xB3,0x88,
|
|
0xCA,0xD0,0xEE,0x90,0xBD,0x20,0xFB,0xAF,
|
|
0xAD,0xF0,0xB3,0x8D,0xF0,0xB5,0xD0,0x89,
|
|
0x4C,0x77,0xB3,0xAD,0xF1,0xB5,0xD0,0x01,
|
|
0x60,0x48,0x20,0xF7,0xAF,0xAC,0xF0,0xB5,
|
|
0x68,0x18,0x20,0xDD,0xB2,0xA9,0x00,0x8D,
|
|
0xF1,0xB5,0x4C,0xFB,0xAF,0xA2,0xFC,0x7E,
|
|
0xF6,0xB4,0xE8,0xD0,0xFA,0xC8,0xCC,0xF0,
|
|
0xB3,0xD0,0xF2,0x0A,0x0A,0xA8,0xF0,0x0F,
|
|
0xA2,0x04,0xBD,0xF1,0xB5,0x19,0xF6,0xB3,
|
|
0x99,0xF6,0xB3,0x88,0xCA,0xD0,0xF3,0x60,
|
|
0xAD,0xBD,0xB5,0x8D,0xE6,0xB5,0x8D,0xEA,
|
|
0xB5,0xAD,0xBE,0xB5,0x8D,0xE4,0xB5,0x8D,
|
|
0xEB,0xB5,0xA9,0x00,0x8D,0xE5,0xB5,0xA0,
|
|
0x10,0xAA,0xAD,0xE6,0xB5,0x4A,0xB0,0x03,
|
|
0x8A,0x90,0x0E,0x18,0xAD,0xE5,0xB5,0x6D,
|
|
0xE8,0xB5,0x8D,0xE5,0xB5,0x8A,0x6D,0xE9,
|
|
0xB5,0x6A,0x6E,0xE5,0xB5,0x6E,0xE4,0xB5,
|
|
0x6E,0xE6,0xB5,0x88,0xD0,0xDB,0x18,0xAD,
|
|
0xBF,0xB5,0x8D,0xEC,0xB5,0x6D,0xE6,0xB5,
|
|
0x8D,0xE6,0xB5,0xAD,0xC0,0xB5,0x8D,0xED,
|
|
0xB5,0x6D,0xE4,0xB5,0x8D,0xE4,0xB5,0x90,
|
|
0x03,0xEE,0xE5,0xB5,0x60,0x00,0x00,0xA9,
|
|
0x01,0xD0,0x22,0xA9,0x02,0xD0,0x1E,0xA9,
|
|
0x03,0xD0,0x1A,0xA9,0x04,0xD0,0x16,0xA9,
|
|
0x05,0xD0,0x12,0xA9,0x06,0xD0,0x0E,0x4C,
|
|
0xED,0xBF,0xEA,0xA9,0x0A,0xD0,0x06,0xAD,
|
|
0xC5,0xB5,0x18,0x90,0x01,0x38,0x08,0x8D,
|
|
0xC5,0xB5,0xA9,0x00,0x85,0x48,0x20,0x7E,
|
|
0xAE,0x28,0xAE,0x9B,0xB3,0x9A,0x60,0x11,
|
|
0x0F,0x00,0x00,0xEC,0x46,0x01,0x00,0x00,
|
|
0x00,0x00,0xFF,0xFF,0x01,0x0A,0x64,0xD4,
|
|
0xC9,0xC1,0xC2,0xD3,0xD2,0xC1,0xC2,0xA0,
|
|
0xC5,0xCD,0xD5,0xCC,0xCF,0xD6,0xA0,0xCB,
|
|
0xD3,0xC9,0xC4,0x04,0x11,0x0F,0x03,0x00,
|
|
0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x00,
|
|
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
|
|
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
|
|
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
|
|
0x00,0x00,0x7A,0x00,0x00,0x00,0x00,0x00,
|
|
0x00,0x00,0x00,0x13,0x01,0x00,0x00,0x23,
|
|
0x10,0x00,0x01,0x00,0x00,0x00,0x00,0x00,
|
|
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
|
|
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
|
|
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x07,
|
|
0xFF,0x00,0x00,0x3F,0xFF,0x00,0x00,0x3F,
|
|
0xFF,0x00,0x00,0x00,0x7F,0x00,0x00,0xFF,
|
|
0xFF,0x00,0x00,0xFF,0xFF,0x00,0x00,0xFF,
|
|
0xFF,0x00,0x00,0x0F,0xFF,0x00,0x00,0x01,
|
|
0xFF,0x00,0x00,0x1F,0xFF,0x00,0x00,0x00,
|
|
0x00,0x00,0x00,0xFF,0xFF,0x00,0x00,0x03,
|
|
0xFF,0x00,0x00,0x1F,0xFF,0x00,0x00,0x03,
|
|
0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
|
|
0x00,0x00,0x00,0x1F,0xFF,0x00,0x00,0x00,
|
|
0x7F,0x00,0x00,0x00,0x7F,0x00,0x00,0x1F,
|
|
0xFF,0x00,0x00,0x00,0x7F,0x00,0x00,0x1F,
|
|
0xFF,0x00,0x00,0x00,0x03,0x00,0x00,0x1F,
|
|
0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x1F,
|
|
0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
|
|
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
|
|
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
|
|
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
|
|
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
|
|
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
|
|
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
|
|
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
|
|
0x00,0x00,0x00,0x00,0x11,0x0E,0x00,0x00,
|
|
0x00,0x00,0x00,0x00,0x00,0x00,0x13,0x0F,
|
|
0x82,0xC8,0xC5,0xCC,0xCC,0xCF,0xA0,0xA0,
|
|
0xA0,0xA0,0xA0,0xA0,0xA0,0xA0,0xA0,0xA0,
|
|
0xA0,0xA0,0xA0,0xA0,0xA0,0xA0,0xA0,0xA0,
|
|
0xA0,0xA0,0xA0,0xA0,0xA0,0xA0,0xA0,0x03,
|
|
0x00,0x14,0x0F,0x81,0xC1,0xD0,0xD0,0xCC,
|
|
0xC5,0xD3,0xCF,0xC6,0xD4,0xA0,0xA0,0xA0,
|
|
0xA0,0xA0,0xA0,0xA0,0xA0,0xA0,0xA0,0xA0,
|
|
0xA0,0xA0,0xA0,0xA0,0xA0,0xA0,0xA0,0xA0,
|
|
0xA0,0xA0,0x03,0x00,0x15,0x0F,0x84,0xCC,
|
|
0xCF,0xC1,0xC4,0xC5,0xD2,0xAE,0xCF,0xC2,
|
|
0xCA,0xB0,0xA0,0xA0,0xA0,0xA0,0xA0,0xA0,
|
|
0xA0,0xA0,0xA0,0xA0,0xA0,0xA0,0xA0,0xA0,
|
|
0xA0,0xA0,0xA0,0xA0,0xA0,0x06,0x00,0x16,
|
|
0x0F,0x84,0xC6,0xD0,0xC2,0xC1,0xD3,0xC9,
|
|
0xC3,0xA0,0xA0,0xA0,0xA0,0xA0,0xA0,0xA0,
|
|
0xA0,0xA0,0xA0,0xA0,0xA0,0xA0,0xA0,0xA0,
|
|
0xA0,0xA0,0xA0,0xA0,0xA0,0xA0,0xA0,0xA0,
|
|
0x2A,0x00,0x17,0x0F,0x84,0xC9,0xCE,0xD4,
|
|
0xC2,0xC1,0xD3,0xC9,0xC3,0xA0,0xA0,0xA0,
|
|
0xA0,0xA0,0xA0,0xA0,0xA0,0xA0,0xA0,0xA0,
|
|
0xA0,0xA0,0xA0,0xA0,0xA0,0xA0,0xA0,0xA0,
|
|
0xA0,0xA0,0xA0,0x2A,0x00,0x18,0x0F,0x82,
|
|
0xCD,0xC1,0xD3,0xD4,0xC5,0xD2,0xA0,0xA0,
|
|
0xA0,0xA0,0xA0,0xA0,0xA0,0xA0,0xA0,0xA0,
|
|
0xA0,0xA0,0xA0,0xA0,0xA0,0xA0,0xA0,0xA0,
|
|
0xA0,0xA0,0xA0,0xA0,0xA0,0xA0,0x03,0x00,
|
|
0x19,0x0F,0x84,0xCD,0xC1,0xD3,0xD4,0xC5,
|
|
0xD2,0xA0,0xC3,0xD2,0xC5,0xC1,0xD4,0xC5,
|
|
0xA0,0xA0,0xA0,0xA0,0xA0,0xA0,0xA0,0xA0,
|
|
0xA0,0xA0,0xA0,0xA0,0xA0,0xA0,0xA0,0xA0,
|
|
0xA0,0x09,0x00,0x00,0x00,0x00,0x00,0x00,
|
|
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
|
|
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
|
|
0x00,0x15,0x0F,0x15,0x0F,0x00,0x15,0x0A,
|
|
0x01,0x46,0x7A,0x00,0x00,0x00,0x7A,0x00,
|
|
0x04,0x00,0x00,0x01,0x04,0x00,0x48,0x00,
|
|
0x01,0x00,0x48,0x04,0x00,0x00,0x06,0x00,
|
|
0x00,0x00,0x00,0x00,0x00,0x00,0x84,0x60,
|
|
0x01,0xFF,0x11,0x00,0x00,0x00,0xFD,0xFE,
|
|
0x01,0xA5,0x27,0xC9,0x09,0xD0,0x18,0xA5,
|
|
0x2B,0x4A,0x4A,0x4A,0x4A,0x09,0xC0,0x85,
|
|
0x3F,0xA9,0x5C,0x85,0x3E,0x18,0xAD,0xFE,
|
|
0x08,0x6D,0xFF,0x08,0x8D,0xFE,0x08,0xAE,
|
|
0xFF,0x08,0x30,0x15,0xBD,0x4D,0x08,0x85,
|
|
0x3D,0xCE,0xFF,0x08,0xAD,0xFE,0x08,0x85,
|
|
0x27,0xCE,0xFE,0x08,0xA6,0x2B,0x6C,0x3E,
|
|
0x00,0xEE,0xFE,0x08,0xEE,0xFE,0x08,0x20,
|
|
0x89,0xFE,0x20,0x93,0xFE,0x20,0x2F,0xFB,
|
|
0xA6,0x2B,0x6C,0xFD,0x08,0x00,0x0D,0x0B,
|
|
0x09,0x07,0x05,0x03,0x01,0x0E,0x0C,0x0A,
|
|
0x08,0x06,0x04,0x02,0x0F,0x00,0x20,0x64,
|
|
0xA7,0xB0,0x08,0xA9,0x00,0xA8,0x8D,0x5D,
|
|
0xB6,0x91,0x40,0xAD,0xC5,0xB5,0x4C,0xD2,
|
|
0xA6,0xAD,0x5D,0xB6,0xF0,0x08,0xEE,0xBD,
|
|
0xB5,0xD0,0x03,0xEE,0xBE,0xB5,0xA9,0x00,
|
|
0x8D,0x5D,0xB6,0x4C,0x84,0xBA,0x8D,0xBC,
|
|
0xB5,0x20,0xA8,0xA6,0x20,0xEA,0xA2,0x4C,
|
|
0x7D,0xA2,0xA0,0x13,0xB1,0x42,0xD0,0x14,
|
|
0xC8,0xC0,0x17,0xD0,0xF7,0xA0,0x19,0xB1,
|
|
0x42,0x99,0xA4,0xB5,0xC8,0xC0,0x1D,0xD0,
|
|
0xF6,0x4C,0xBB,0xA6,0xA2,0xFF,0x8E,0x5D,
|
|
0xB6,0xD0,0xF6,0x00,0x00,0x00,0x00,0x00,
|
|
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
|
|
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
|
|
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
|
|
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
|
|
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
|
|
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
|
|
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
|
|
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
|
|
0x00,0x00,0x00,0x00,0x00,0x00,0x36,0x09,
|
|
0x8E,0xE9,0xB7,0x8E,0xF7,0xB7,0xA9,0x01,
|
|
0x8D,0xF8,0xB7,0x8D,0xEA,0xB7,0xAD,0xE0,
|
|
0xB7,0x8D,0xE1,0xB7,0xA9,0x02,0x8D,0xEC,
|
|
0xB7,0xA9,0x04,0x8D,0xED,0xB7,0xAC,0xE7,
|
|
0xB7,0x88,0x8C,0xF1,0xB7,0xA9,0x01,0x8D,
|
|
0xF4,0xB7,0x8A,0x4A,0x4A,0x4A,0x4A,0xAA,
|
|
0xA9,0x00,0x9D,0xF8,0x04,0x9D,0x78,0x04,
|
|
0x20,0x93,0xB7,0xA2,0xFF,0x9A,0x8E,0xEB,
|
|
0xB7,0x4C,0xC8,0xBF,0x20,0x89,0xFE,0x4C,
|
|
0x84,0x9D,0xAD,0xE7,0xB7,0x38,0xED,0xF1,
|
|
0xB7,0x8D,0xE1,0xB7,0xAD,0xE7,0xB7,0x8D,
|
|
0xF1,0xB7,0xCE,0xF1,0xB7,0xA9,0x02,0x8D,
|
|
0xEC,0xB7,0xA9,0x04,0x8D,0xED,0xB7,0xA9,
|
|
0x02,0x8D,0xF4,0xB7,0x20,0x93,0xB7,0xAD,
|
|
0xE7,0xB7,0x8D,0xFE,0xB6,0x18,0x69,0x09,
|
|
0x8D,0xF1,0xB7,0xA9,0x0A,0x8D,0xE1,0xB7,
|
|
0x38,0xE9,0x01,0x8D,0xFF,0xB6,0x8D,0xED,
|
|
0xB7,0x20,0x93,0xB7,0x60,0x00,0x00,0x00,
|
|
0x00,0x00,0x00,0xAD,0xE5,0xB7,0xAC,0xE4,
|
|
0xB7,0x20,0xB5,0xB7,0xAC,0xED,0xB7,0x88,
|
|
0x10,0x07,0xA0,0x0F,0xEA,0xEA,0xCE,0xEC,
|
|
0xB7,0x8C,0xED,0xB7,0xCE,0xF1,0xB7,0xCE,
|
|
0xE1,0xB7,0xD0,0xDF,0x60,0x08,0x78,0x20,
|
|
0x00,0xBD,0xB0,0x03,0x28,0x18,0x60,0x28,
|
|
0x38,0x60,0xAD,0xBC,0xB5,0x8D,0xF1,0xB7,
|
|
0xA9,0x00,0x8D,0xF0,0xB7,0xAD,0xF9,0xB5,
|
|
0x49,0xFF,0x8D,0xEB,0xB7,0x60,0xA9,0x00,
|
|
0xA8,0x91,0x42,0xC8,0xD0,0xFB,0x60,0x00,
|
|
0x1B,0x00,0x0A,0x1B,0xE8,0xB7,0x00,0xB6,
|
|
0x01,0x60,0x01,0xFF,0x15,0x0A,0xFB,0xB7,
|
|
0x00,0x96,0x00,0x01,0x01,0x00,0xFE,0x60,
|
|
0x01,0x00,0x00,0x00,0x01,0xEF,0xD8,0x00,
|
|
0xA2,0x00,0xA0,0x02,0x88,0xB1,0x3E,0x4A,
|
|
0x3E,0x00,0xBC,0x4A,0x3E,0x00,0xBC,0x99,
|
|
0x00,0xBB,0xE8,0xE0,0x56,0x90,0xED,0xA2,
|
|
0x00,0x98,0xD0,0xE8,0xA2,0x55,0xBD,0x00,
|
|
0xBC,0x29,0x3F,0x9D,0x00,0xBC,0xCA,0x10,
|
|
0xF5,0x60,0x38,0x86,0x27,0x8E,0x78,0x06,
|
|
0xBD,0x8D,0xC0,0xBD,0x8E,0xC0,0x30,0x7C,
|
|
0xAD,0x00,0xBC,0x85,0x26,0xA9,0xFF,0x9D,
|
|
0x8F,0xC0,0x1D,0x8C,0xC0,0x48,0x68,0xEA,
|
|
0xA0,0x04,0x48,0x68,0x20,0xB9,0xB8,0x88,
|
|
0xD0,0xF8,0xA9,0xD5,0x20,0xB8,0xB8,0xA9,
|
|
0xAA,0x20,0xB8,0xB8,0xA9,0xAD,0x20,0xB8,
|
|
0xB8,0x98,0xA0,0x56,0xD0,0x03,0xB9,0x00,
|
|
0xBC,0x59,0xFF,0xBB,0xAA,0xBD,0x29,0xBA,
|
|
0xA6,0x27,0x9D,0x8D,0xC0,0xBD,0x8C,0xC0,
|
|
0x88,0xD0,0xEB,0xA5,0x26,0xEA,0x59,0x00,
|
|
0xBB,0xAA,0xBD,0x29,0xBA,0xAE,0x78,0x06,
|
|
0x9D,0x8D,0xC0,0xBD,0x8C,0xC0,0xB9,0x00,
|
|
0xBB,0xC8,0xD0,0xEA,0xAA,0xBD,0x29,0xBA,
|
|
0xA6,0x27,0x20,0xBB,0xB8,0xA9,0xDE,0x20,
|
|
0xB8,0xB8,0xA9,0xAA,0x20,0xB8,0xB8,0xA9,
|
|
0xEB,0x20,0xB8,0xB8,0xA9,0xFF,0x20,0xB8,
|
|
0xB8,0xBD,0x8E,0xC0,0xBD,0x8C,0xC0,0x60,
|
|
0x18,0x48,0x68,0x9D,0x8D,0xC0,0x1D,0x8C,
|
|
0xC0,0x60,0xA0,0x00,0xA2,0x56,0xCA,0x30,
|
|
0xFB,0xB9,0x00,0xBB,0x5E,0x00,0xBC,0x2A,
|
|
0x5E,0x00,0xBC,0x2A,0x91,0x3E,0xC8,0xC4,
|
|
0x26,0xD0,0xEB,0x60,0xA0,0x20,0x88,0xF0,
|
|
0x61,0xBD,0x8C,0xC0,0x10,0xFB,0x49,0xD5,
|
|
0xD0,0xF4,0xEA,0xBD,0x8C,0xC0,0x10,0xFB,
|
|
0xC9,0xAA,0xD0,0xF2,0xA0,0x56,0xBD,0x8C,
|
|
0xC0,0x10,0xFB,0xC9,0xAD,0xD0,0xE7,0xA9,
|
|
0x00,0x88,0x84,0x26,0xBC,0x8C,0xC0,0x10,
|
|
0xFB,0x59,0x00,0xBA,0xA4,0x26,0x99,0x00,
|
|
0xBC,0xD0,0xEE,0x84,0x26,0xBC,0x8C,0xC0,
|
|
0x10,0xFB,0x59,0x00,0xBA,0xA4,0x26,0x99,
|
|
0x00,0xBB,0xC8,0xD0,0xEE,0xBC,0x8C,0xC0,
|
|
0x10,0xFB,0xD9,0x00,0xBA,0xD0,0x13,0xBD,
|
|
0x8C,0xC0,0x10,0xFB,0xC9,0xDE,0xD0,0x0A,
|
|
0xEA,0xBD,0x8C,0xC0,0x10,0xFB,0xC9,0xAA,
|
|
0xF0,0x5C,0x38,0x60,0xA0,0xFC,0x84,0x26,
|
|
0xC8,0xD0,0x04,0xE6,0x26,0xF0,0xF3,0xBD,
|
|
0x8C,0xC0,0x10,0xFB,0xC9,0xD5,0xD0,0xF0,
|
|
0xEA,0xBD,0x8C,0xC0,0x10,0xFB,0xC9,0xAA,
|
|
0xD0,0xF2,0xA0,0x03,0xBD,0x8C,0xC0,0x10,
|
|
0xFB,0xC9,0x96,0xD0,0xE7,0xA9,0x00,0x85,
|
|
0x27,0xBD,0x8C,0xC0,0x10,0xFB,0x2A,0x85,
|
|
0x26,0xBD,0x8C,0xC0,0x10,0xFB,0x25,0x26,
|
|
0x99,0x2C,0x00,0x45,0x27,0x88,0x10,0xE7,
|
|
0xA8,0xD0,0xB7,0xBD,0x8C,0xC0,0x10,0xFB,
|
|
0xC9,0xDE,0xD0,0xAE,0xEA,0xBD,0x8C,0xC0,
|
|
0x10,0xFB,0xC9,0xAA,0xD0,0xA4,0x18,0x60,
|
|
0x86,0x2B,0x85,0x2A,0xCD,0x78,0x04,0xF0,
|
|
0x53,0xA9,0x00,0x85,0x26,0xAD,0x78,0x04,
|
|
0x85,0x27,0x38,0xE5,0x2A,0xF0,0x33,0xB0,
|
|
0x07,0x49,0xFF,0xEE,0x78,0x04,0x90,0x05,
|
|
0x69,0xFE,0xCE,0x78,0x04,0xC5,0x26,0x90,
|
|
0x02,0xA5,0x26,0xC9,0x0C,0xB0,0x01,0xA8,
|
|
0x38,0x20,0xEE,0xB9,0xB9,0x11,0xBA,0x20,
|
|
0x00,0xBA,0xA5,0x27,0x18,0x20,0xF1,0xB9,
|
|
0xB9,0x1D,0xBA,0x20,0x00,0xBA,0xE6,0x26,
|
|
0xD0,0xC3,0x20,0x00,0xBA,0x18,0xAD,0x78,
|
|
0x04,0x29,0x03,0x2A,0x05,0x2B,0xAA,0xBD,
|
|
0x80,0xC0,0xA6,0x2B,0x60,0x00,0x00,0x00,
|
|
0xA2,0x11,0xCA,0xD0,0xFD,0xE6,0x46,0xD0,
|
|
0x02,0xE6,0x47,0x38,0xE9,0x01,0xD0,0xF0,
|
|
0x60,0x01,0x30,0x28,0x24,0x20,0x1E,0x1D,
|
|
0x1C,0x1C,0x1C,0x1C,0x1C,0x70,0x2C,0x26,
|
|
0x22,0x1F,0x1E,0x1D,0x1C,0x1C,0x1C,0x1C,
|
|
0x1C,0x96,0x97,0x9A,0x9B,0x9D,0x9E,0x9F,
|
|
0xA6,0xA7,0xAB,0xAC,0xAD,0xAE,0xAF,0xB2,
|
|
0xB3,0xB4,0xB5,0xB6,0xB7,0xB9,0xBA,0xBB,
|
|
0xBC,0xBD,0xBE,0xBF,0xCB,0xCD,0xCE,0xCF,
|
|
0xD3,0xD6,0xD7,0xD9,0xDA,0xDB,0xDC,0xDD,
|
|
0xDE,0xDF,0xE5,0xE6,0xE7,0xE9,0xEA,0xEB,
|
|
0xEC,0xED,0xEE,0xEF,0xF2,0xF3,0xF4,0xF5,
|
|
0xF6,0xF7,0xF9,0xFA,0xFB,0xFC,0xFD,0xFE,
|
|
0xFF,0xAE,0x5F,0xAA,0xE0,0x1C,0xF0,0x05,
|
|
0xA2,0x00,0x8E,0x5D,0xB6,0x60,0xA9,0xFF,
|
|
0x8D,0xFB,0x04,0x8D,0x0C,0xC0,0x8D,0x0E,
|
|
0xC0,0x4C,0x2F,0xFB,0xAD,0xBD,0xB5,0x8D,
|
|
0xE6,0xB5,0x8D,0xEA,0xB5,0xBA,0x8E,0x9B,
|
|
0xB3,0x4C,0x7F,0xB3,0x00,0x00,0x00,0x01,
|
|
0x98,0x99,0x02,0x03,0x9C,0x04,0x05,0x06,
|
|
0xA0,0xA1,0xA2,0xA3,0xA4,0xA5,0x07,0x08,
|
|
0xA8,0xA9,0xAA,0x09,0x0A,0x0B,0x0C,0x0D,
|
|
0xB0,0xB1,0x0E,0x0F,0x10,0x11,0x12,0x13,
|
|
0xB8,0x14,0x15,0x16,0x17,0x18,0x19,0x1A,
|
|
0xC0,0xC1,0xC2,0xC3,0xC4,0xC5,0xC6,0xC7,
|
|
0xC8,0xC9,0xCA,0x1B,0xCC,0x1C,0x1D,0x1E,
|
|
0xD0,0xD1,0xD2,0x1F,0xD4,0xD5,0x20,0x21,
|
|
0xD8,0x22,0x23,0x24,0x25,0x26,0x27,0x28,
|
|
0xE0,0xE1,0xE2,0xE3,0xE4,0x29,0x2A,0x2B,
|
|
0xE8,0x2C,0x2D,0x2E,0x2F,0x30,0x31,0x32,
|
|
0xF0,0xF1,0x33,0x34,0x35,0x36,0x37,0x38,
|
|
0xF8,0x39,0x3A,0x3B,0x3C,0x3D,0x3E,0x3F,
|
|
0x3F,0x3F,0x3F,0x3F,0x3A,0x20,0x12,0x34,
|
|
0x05,0x29,0x0F,0x29,0x0F,0x34,0x00,0x22,
|
|
0x32,0x22,0x06,0x39,0x0E,0x21,0x0F,0x04,
|
|
0x00,0x32,0x26,0x39,0x0E,0x34,0x1A,0x29,
|
|
0x0B,0x2E,0x0F,0x00,0x24,0x0E,0x22,0x04,
|
|
0x3E,0x08,0x06,0x3F,0x08,0x06,0x3F,0x08,
|
|
0x34,0x3E,0x08,0x14,0x3E,0x21,0x0E,0x21,
|
|
0x0E,0x13,0x25,0x3D,0x08,0x2F,0x3F,0x29,
|
|
0x0D,0x08,0x29,0x3F,0x21,0x0D,0x28,0x05,
|
|
0x22,0x0C,0x12,0x36,0x33,0x3F,0x34,0x3E,
|
|
0x30,0x05,0x34,0x3A,0x29,0x0C,0x28,0x00,
|
|
0x31,0x0D,0x08,0x00,0x3F,0x13,0x25,0x3D,
|
|
0x29,0x0F,0x08,0x23,0x3E,0x2A,0x2F,0x00,
|
|
0x3E,0x31,0x10,0x34,0x04,0x2F,0x30,0x3E,
|
|
0x31,0x10,0x34,0x03,0x29,0x11,0x29,0x0B,
|
|
0x30,0x27,0x3C,0x22,0x31,0x0B,0x3C,0x27,
|
|
0x31,0x0F,0x34,0x37,0x39,0x11,0x31,0x0D,
|
|
0x3C,0x35,0x29,0x0D,0x26,0x2A,0x08,0x12,
|
|
0x3E,0x2A,0x37,0x08,0x3B,0x3F,0x08,0x0E,
|
|
0x3F,0x2A,0x28,0x21,0x0C,0x08,0x19,0x3F,
|
|
0x08,0x31,0x3F,0x2B,0x00,0x00,0x32,0x28,
|
|
0x3C,0x04,0x32,0x32,0x29,0x3C,0x24,0x22,
|
|
0x08,0x29,0x3F,0x32,0x24,0x34,0x35,0x22,
|
|
0x3C,0x34,0x08,0x1E,0x3F,0x2A,0x00,0x21,
|
|
0x0F,0x08,0x0D,0x3D,0x02,0x3A,0x2F,0x32,
|
|
0x30,0x24,0x30,0x02,0x02,0x28,0x01,0x02,
|
|
0x09,0x10,0x09,0x10,0x32,0x04,0x3E,0x31,
|
|
0x0F,0x3C,0x3D,0x04,0x39,0x28,0x01,0x08,
|
|
0x0D,0x3D,0x21,0x0D,0x37,0x2D,0x3E,0x34,
|
|
0x04,0x08,0x0D,0x3D,0x37,0x2E,0x3E,0x3C,
|
|
0x03,0x2F,0x2E,0x3E,0x3C,0x01,0x32,0x29,
|
|
0x3C,0x00,0x29,0x0D,0x06,0x22,0x09,0x11,
|
|
0x03,0x03,0x00,0x00,0x00,0x00,0x00,0x00,
|
|
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
|
|
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
|
|
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
|
|
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
|
|
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
|
|
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
|
|
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
|
|
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
|
|
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
|
|
0x00,0x00,0x00,0x00,0x00,0x00,0x38,0xBD,
|
|
0x8D,0xC0,0xBD,0x8E,0xC0,0x30,0x5E,0xA9,
|
|
0xFF,0x9D,0x8F,0xC0,0xDD,0x8C,0xC0,0x48,
|
|
0x68,0x20,0xC3,0xBC,0x20,0xC3,0xBC,0x9D,
|
|
0x8D,0xC0,0xDD,0x8C,0xC0,0xEA,0x88,0xD0,
|
|
0xF0,0xA9,0xD5,0x20,0xD5,0xBC,0xA9,0xAA,
|
|
0x20,0xD5,0xBC,0xA9,0x96,0x20,0xD5,0xBC,
|
|
0xA5,0x41,0x20,0xC4,0xBC,0xA5,0x44,0x20,
|
|
0xC4,0xBC,0xA5,0x3F,0x20,0xC4,0xBC,0xA5,
|
|
0x41,0x45,0x44,0x45,0x3F,0x48,0x4A,0x05,
|
|
0x3E,0x9D,0x8D,0xC0,0xBD,0x8C,0xC0,0x68,
|
|
0x09,0xAA,0x20,0xD4,0xBC,0xA9,0xDE,0x20,
|
|
0xD5,0xBC,0xA9,0xAA,0x20,0xD5,0xBC,0xA9,
|
|
0xEB,0x20,0xD5,0xBC,0x18,0xBD,0x8E,0xC0,
|
|
0xBD,0x8C,0xC0,0x60,0x48,0x4A,0x05,0x3E,
|
|
0x9D,0x8D,0xC0,0xDD,0x8C,0xC0,0x68,0xEA,
|
|
0xEA,0xEA,0x09,0xAA,0xEA,0xEA,0x48,0x68,
|
|
0x9D,0x8D,0xC0,0xDD,0x8C,0xC0,0x60,0x00,
|
|
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
|
|
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
|
|
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
|
|
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
|
|
0x84,0x48,0x85,0x49,0xA0,0x02,0x8C,0xF8,
|
|
0x06,0xA0,0x04,0x8C,0xF8,0x04,0xA0,0x01,
|
|
0xB1,0x48,0xAA,0xA0,0x0F,0xD1,0x48,0xF0,
|
|
0x1B,0x8A,0x48,0xB1,0x48,0xAA,0x68,0x48,
|
|
0x91,0x48,0xBD,0x8E,0xC0,0xA0,0x08,0xBD,
|
|
0x8C,0xC0,0xDD,0x8C,0xC0,0xD0,0xF6,0x88,
|
|
0xD0,0xF8,0x68,0xAA,0xBD,0x8E,0xC0,0xBD,
|
|
0x8C,0xC0,0xA0,0x08,0xBD,0x8C,0xC0,0x48,
|
|
0x68,0x48,0x68,0x8E,0xF8,0x05,0xDD,0x8C,
|
|
0xC0,0xD0,0x03,0x88,0xD0,0xEE,0x08,0xBD,
|
|
0x89,0xC0,0xA0,0x06,0xB1,0x48,0x99,0x36,
|
|
0x00,0xC8,0xC0,0x0A,0xD0,0xF6,0xA0,0x03,
|
|
0xB1,0x3C,0x85,0x47,0xA0,0x02,0xB1,0x48,
|
|
0xA0,0x10,0xD1,0x48,0xF0,0x06,0x91,0x48,
|
|
0x28,0xA0,0x00,0x08,0x6A,0x90,0x05,0xBD,
|
|
0x8A,0xC0,0xB0,0x03,0xBD,0x8B,0xC0,0x66,
|
|
0x35,0x28,0x08,0xD0,0x0B,0xA0,0x07,0x20,
|
|
0x00,0xBA,0x88,0xD0,0xFA,0xAE,0xF8,0x05,
|
|
0xA0,0x04,0xB1,0x48,0x20,0x5A,0xBE,0x28,
|
|
0xD0,0x11,0xA4,0x47,0x10,0x0D,0xA0,0x12,
|
|
0x88,0xD0,0xFD,0xE6,0x46,0xD0,0xF7,0xE6,
|
|
0x47,0xD0,0xF3,0xA0,0x0C,0xB1,0x48,0xF0,
|
|
0x5A,0xC9,0x04,0xF0,0x58,0x6A,0x08,0xB0,
|
|
0x03,0x20,0x00,0xB8,0xA0,0x30,0x8C,0x78,
|
|
0x05,0xAE,0xF8,0x05,0x20,0x44,0xB9,0x90,
|
|
0x24,0xCE,0x78,0x05,0x10,0xF3,0xAD,0x78,
|
|
0x04,0x48,0xA9,0x60,0x20,0x95,0xBE,0xCE,
|
|
0xF8,0x06,0xF0,0x28,0xA9,0x04,0x8D,0xF8,
|
|
0x04,0xA9,0x00,0x20,0x5A,0xBE,0x68,0x20,
|
|
0x5A,0xBE,0x4C,0xBC,0xBD,0xA4,0x2E,0xCC,
|
|
0x78,0x04,0xF0,0x1C,0xAD,0x78,0x04,0x48,
|
|
0x98,0x20,0x95,0xBE,0x68,0xCE,0xF8,0x04,
|
|
0xD0,0xE5,0xF0,0xCA,0x68,0xA9,0x40,0x28,
|
|
0x4C,0x48,0xBE,0xF0,0x39,0x4C,0xAF,0xBE,
|
|
0xA0,0x03,0xB1,0x48,0x48,0xA5,0x2F,0xA0,
|
|
0x0E,0x91,0x48,0x68,0xF0,0x08,0xC5,0x2F,
|
|
0xF0,0x04,0xA9,0x20,0xD0,0xE1,0xA0,0x05,
|
|
0xB1,0x48,0xA8,0xB9,0xB8,0xBF,0xC5,0x2D,
|
|
0xD0,0x97,0x28,0x90,0x1C,0x20,0xDC,0xB8,
|
|
0x08,0xB0,0x8E,0x28,0xA2,0x00,0x86,0x26,
|
|
0x20,0xC2,0xB8,0xAE,0xF8,0x05,0x18,0x24,
|
|
0x38,0xA0,0x0D,0x91,0x48,0xBD,0x88,0xC0,
|
|
0x60,0x20,0x2A,0xB8,0x90,0xF0,0xA9,0x10,
|
|
0xB0,0xEE,0x48,0xA0,0x01,0xB1,0x3C,0x6A,
|
|
0x68,0x90,0x08,0x0A,0x20,0x6B,0xBE,0x4E,
|
|
0x78,0x04,0x60,0x85,0x2A,0x20,0x8E,0xBE,
|
|
0xB9,0x78,0x04,0x24,0x35,0x30,0x03,0xB9,
|
|
0xF8,0x04,0x8D,0x78,0x04,0xA5,0x2A,0x24,
|
|
0x35,0x30,0x05,0x99,0xF8,0x04,0x10,0x03,
|
|
0x99,0x78,0x04,0x4C,0xA0,0xB9,0x8A,0x4A,
|
|
0x4A,0x4A,0x4A,0xA8,0x60,0x48,0xA0,0x02,
|
|
0xB1,0x48,0x6A,0x66,0x35,0x20,0x8E,0xBE,
|
|
0x68,0x0A,0x24,0x35,0x30,0x05,0x99,0xF8,
|
|
0x04,0x10,0x03,0x99,0x78,0x04,0x60,0xA0,
|
|
0x03,0xB1,0x48,0x85,0x41,0xA9,0xAA,0x85,
|
|
0x3E,0xA0,0x56,0xA9,0x00,0x85,0x44,0x99,
|
|
0xFF,0xBB,0x88,0xD0,0xFA,0x99,0x00,0xBB,
|
|
0x88,0xD0,0xFA,0xA9,0x50,0x20,0x95,0xBE,
|
|
0xA9,0x28,0x85,0x45,0xA5,0x44,0x20,0x5A,
|
|
0xBE,0x20,0x0D,0xBF,0xA9,0x08,0xB0,0x24,
|
|
0xA9,0x30,0x8D,0x78,0x05,0x38,0xCE,0x78,
|
|
0x05,0xF0,0x19,0x20,0x44,0xB9,0xB0,0xF5,
|
|
0xA5,0x2D,0xD0,0xF1,0x20,0xDC,0xB8,0xB0,
|
|
0xEC,0xE6,0x44,0xA5,0x44,0xC9,0x23,0x90,
|
|
0xD3,0x18,0x90,0x05,0xA0,0x0D,0x91,0x48,
|
|
0x38,0xBD,0x88,0xC0,0x60,0xA9,0x00,0x85,
|
|
0x3F,0xA0,0x80,0xD0,0x02,0xA4,0x45,0x20,
|
|
0x56,0xBC,0xB0,0x6B,0x20,0x2A,0xB8,0xB0,
|
|
0x66,0xE6,0x3F,0xA5,0x3F,0xC9,0x10,0x90,
|
|
0xEC,0xA0,0x0F,0x84,0x3F,0xA9,0x30,0x8D,
|
|
0x78,0x05,0x99,0xA8,0xBF,0x88,0x10,0xFA,
|
|
0xA4,0x45,0x20,0x87,0xBF,0x20,0x87,0xBF,
|
|
0x20,0x87,0xBF,0x48,0x68,0xEA,0x88,0xD0,
|
|
0xF1,0x20,0x44,0xB9,0xB0,0x23,0xA5,0x2D,
|
|
0xF0,0x15,0xA9,0x10,0xC5,0x45,0xA5,0x45,
|
|
0xE9,0x01,0x85,0x45,0xC9,0x05,0xB0,0x11,
|
|
0x38,0x60,0x20,0x44,0xB9,0xB0,0x05,0x20,
|
|
0xDC,0xB8,0x90,0x1C,0xCE,0x78,0x05,0xD0,
|
|
0xF1,0x20,0x44,0xB9,0xB0,0x0B,0xA5,0x2D,
|
|
0xC9,0x0F,0xD0,0x05,0x20,0xDC,0xB8,0x90,
|
|
0x8C,0xCE,0x78,0x05,0xD0,0xEB,0x38,0x60,
|
|
0xA4,0x2D,0xB9,0xA8,0xBF,0x30,0xDD,0xA9,
|
|
0xFF,0x99,0xA8,0xBF,0xC6,0x3F,0x10,0xCA,
|
|
0xA5,0x44,0xD0,0x0A,0xA5,0x45,0xC9,0x10,
|
|
0x90,0xE5,0xC6,0x45,0xC6,0x45,0x18,0x60,
|
|
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
|
|
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
|
|
0x00,0x0D,0x0B,0x09,0x07,0x05,0x03,0x01,
|
|
0x0E,0x0C,0x0A,0x08,0x06,0x04,0x02,0x0F,
|
|
0x20,0x93,0xFE,0xAD,0x81,0xC0,0xAD,0x81,
|
|
0xC0,0xA9,0x00,0x8D,0x00,0xE0,0x20,0x76,
|
|
0xBA,0x4C,0x44,0xB7,0x8D,0x63,0xAA,0x8D,
|
|
0x70,0xAA,0x8D,0x71,0xAA,0x60,0x20,0x5B,
|
|
0xA7,0x8C,0xB7,0xAA,0x60,0x20,0x7E,0xAE,
|
|
0xAE,0x9B,0xB3,0x9A,0x20,0x16,0xA3,0xBA,
|
|
0x8E,0x9B,0xB3,0xA9,0x09,0x4C,0x85,
|
|
};
|