Added 4K and 8K versions of my 6502 ASSEMBLER/DISASSEMBLER (although they may be of different vintages)

This commit is contained in:
Jeff Parsons 2016-05-10 22:57:27 -07:00
commit ba2e525982
10 changed files with 277 additions and 52 deletions

View file

@ -10,6 +10,6 @@ Challenger 1P Machine-Language (6502) Programs
The project contains the following 6502 machine-language programs written by [Jeff Parsons](https://twitter.com/jeffpar) The project contains the following 6502 machine-language programs written by [Jeff Parsons](https://twitter.com/jeffpar)
in 1979-1980: in 1979-1980:
- [6502 Assembler/Disassembler](assembler/ASSEMBLER-1.json) - [6502 Assembler/Disassembler](assembler/)
- [BASIC Extensions](basicext/BASICEXT.json) - [BASIC Extensions](basicext/BASICEXT.json)
- [Game of Life](life/LIFE.json) - [Game of Life](life/LIFE.json)

View file

@ -1,5 +0,0 @@
{"bytes": [
0x00,0x00,0x82,0x84,0x04,0x00,0x04,0x00,0x00,0x00,0x5E,0x48,0xCD,0x15,0x02,0xD0, // 0x00000000 ..........^H....
0x03,0x4C,0x0B,0x19,0x4C,0x96,0x18,0xA0,0x00,0x8C,0xC4,0x14,0x4C,0xBC,0x18,0x20, // 0x00000010 .L..L.......L..
0x42] // 0x00000020 B
}

Binary file not shown.

View file

@ -0,0 +1,222 @@
{"bytes": [
0x2E,0x30,0x31,0x43,0x34,0x2F,0x34,0x32,0x0D,0x35,0x39,0x0D,0x32,0x30,0x0D,0x34, // 0x00000000 .01C4/42.59.20.4
0x41,0x0D,0x34,0x35,0x0D,0x34,0x36,0x0D,0x34,0x36,0x0D,0x32,0x30,0x0D,0x35,0x30, // 0x00000010 A.45.46.46.20.50
0x0D,0x34,0x31,0x0D,0x35,0x32,0x0D,0x35,0x33,0x0D,0x34,0x46,0x0D,0x34,0x45,0x0D, // 0x00000020 .41.52.53.4F.4E.
0x35,0x33,0x0D,0x32,0x30,0x0D,0x33,0x39,0x0D,0x32,0x46,0x0D,0x33,0x38,0x0D,0x33, // 0x00000030 53.20.39.2F.38.3
0x30,0x0D,0x41,0x32,0x0D,0x30,0x38,0x0D,0x41,0x39,0x0D,0x32,0x30,0x0D,0x39,0x44, // 0x00000040 0.A2.08.A9.20.9D
0x0D,0x43,0x35,0x0D,0x44,0x30,0x0D,0x43,0x41,0x0D,0x44,0x30,0x0D,0x46,0x41,0x0D, // 0x00000050 .C5.D0.CA.D0.FA.
0x41,0x44,0x0D,0x30,0x30,0x0D,0x46,0x30,0x0D,0x34,0x41,0x0D,0x39,0x30,0x0D,0x46, // 0x00000060 AD.00.F0.4A.90.F
0x41,0x0D,0x41,0x44,0x0D,0x30,0x31,0x0D,0x46,0x30,0x0D,0x38,0x44,0x0D,0x30,0x30, // 0x00000070 A.AD.01.F0.8D.00
0x0D,0x30,0x33,0x0D,0x45,0x45,0x0D,0x45,0x43,0x0D,0x30,0x31,0x0D,0x44,0x30,0x0D, // 0x00000080 .03.EE.EC.01.D0.
0x45,0x46,0x0D,0x45,0x45,0x0D,0x45,0x44,0x0D,0x30,0x31,0x0D,0x41,0x44,0x0D,0x45, // 0x00000090 EF.EE.ED.01.AD.E
0x44,0x0D,0x30,0x31,0x0D,0x43,0x39,0x0D,0x31,0x30,0x0D,0x44,0x30,0x0D,0x45,0x35, // 0x000000A0 D.01.C9.10.D0.E5
0x0D,0x34,0x43,0x0D,0x33,0x30,0x0D,0x30,0x36,0x0D,0x2E,0x30,0x31,0x44,0x38,0x47, // 0x000000B0 .4C.30.06..01D8G
0xAD,0x13,0x02,0x48,0xAD,0x14,0x02,0x48,0xAD,0x15,0x02,0x48,0xAD,0x16,0x02,0x48, // 0x000000C0 ...H...H...H...H
0xAD,0xFF,0x03,0x8D,0x14,0x02,0xAD,0xFE,0x03,0x8D,0x15,0x02,0xAD,0xFD,0x03,0x8D, // 0x000000D0 ................
0x16,0x02,0x20,0x58,0x03,0xA8,0x8D,0xFC,0x03,0xAD,0x16,0x02,0x8D,0xFD,0x03,0xAD, // 0x000000E0 .. X............
0x15,0x02,0x8D,0xFE,0x03,0xAD,0x14,0x02,0x8D,0xFF,0x03,0x68,0x8D,0x16,0x02,0x68, // 0x000000F0 ...........h...h
0x8D,0x15,0x02,0x68,0x8D,0x14,0x02,0x68,0x8D,0x13,0x02,0x98,0x60,0xA9,0x00,0x20, // 0x00000100 ...h...h....`..
0x50,0x04,0xA9,0x00,0x20,0x50,0x04,0x60,0xAD,0x12,0x04,0x8D,0x7C,0x06,0xAD,0x13, // 0x00000110 P... P.`....|...
0x04,0x8D,0xFB,0x03,0xA9,0x67,0x8D,0x12,0x04,0xA9,0xD3,0x8D,0x13,0x04,0xAD,0xC4, // 0x00000120 .....g..........
0x04,0x4A,0xB0,0x06,0x20,0x4D,0x03,0x4C,0x86,0x03,0xAD,0xC6,0x04,0x20,0x50,0x04, // 0x00000130 .J.. M.L..... P.
0xAD,0xC5,0x04,0x20,0x50,0x04,0x20,0x26,0x04,0xA0,0x07,0xB9,0xF3,0x03,0x20,0x00, // 0x00000140 ... P. &...... .
0x04,0x88,0xD0,0xF7,0xAD,0xC3,0x04,0x4A,0x4A,0x90,0x0F,0xAD,0xC8,0x04,0x20,0x50, // 0x00000150 .......JJ..... P
0x04,0xAD,0xC7,0x04,0x20,0x50,0x04,0x4C,0xC3,0x03,0xAD,0xC4,0x04,0x4A,0x4A,0xB0, // 0x00000160 .... P.L.....JJ.
0x06,0x20,0x4D,0x03,0x4C,0xC3,0x03,0xAD,0xAF,0x0D,0x20,0x50,0x04,0xAD,0xAE,0x0D, // 0x00000170 . M.L..... P....
0x20,0x50,0x04,0xA9,0x20,0x20,0x11,0x04,0xAD,0x7C,0x06,0x8D,0x12,0x04,0xAD,0xFB, // 0x00000180 P.. ...|......
0x03,0x8D,0x13,0x04,0x20,0x00,0xFD,0x60,0x8D,0xC3,0x04,0x8D,0xC4,0x04,0x60,0xAE, // 0x00000190 .... ..`......`.
0xC0,0x04,0x9A,0xAE,0xBE,0x04,0xAC,0xBF,0x04,0xAD,0xC1,0x04,0x48,0xAD,0xBD,0x04, // 0x000001A0 ............H...
0x28,0x6C,0xC7,0x04,0x3A,0x52,0x4F,0x54,0x43,0x45,0x56,0xD3,0x0A,0x0A,0x0A,0x96, // 0x000001B0 (l..:ROTCEV.....
0x20,0x11,0x04,0xEE,0x12,0x04,0xD0,0x03,0xEE,0x13,0x04,0x60,0xA4,0x20,0x11,0x04, // 0x000001C0 ..........`. ..
0x60,0x8D,0x47,0xD3,0x60,0xA9,0x20,0x20,0x11,0x04,0x60,0xCE,0xC2,0x04,0xD0,0xFB, // 0x000001D0 `.G.`. ..`.....
0x18,0x69,0xFF,0xD0,0xF6,0x60,0xA9,0x20,0x20,0x00,0x04,0x60,0xA9,0x2E,0x20,0x00, // 0x000001E0 .i...`. ..`.. .
0x04,0x88,0xD0,0xF8,0x60,0x18,0xA9,0x10,0x6D,0x12,0x04,0x8D,0x12,0x04,0x90,0x03, // 0x000001F0 ....`...m.......
0xEE,0x13,0x04,0x60,0xAD,0x15,0x10,0xEE,0x45,0x04,0xD0,0x03,0xEE,0x46,0x04,0x60, // 0x00000200 ...`....E....F.`
0xA8,0x20,0x5B,0x04,0x98,0x29,0x0F,0x20,0x5F,0x04,0x60,0x4A,0x4A,0x4A,0x4A,0xAA, // 0x00000210 . [..). _.`JJJJ.
0xBD,0xF0,0x04,0x20,0x00,0x04,0x60,0xA9,0xC7,0x8D,0x12,0x04,0xA9,0xD0,0x8D,0x13, // 0x00000220 ... ..`.........
0x04,0xA2,0x09,0xBD,0xCE,0x04,0x20,0x00,0x04,0xCA,0xD0,0xF7,0x20,0x26,0x04,0xA0, // 0x00000230 ...... ..... &..
0x18,0xAD,0xC3,0x04,0x4A,0x90,0x0E,0xA2,0x04,0xB9,0xD7,0x04,0x20,0x00,0x04,0x88, // 0x00000240 ....J....... ...
0xCA,0xD0,0xF6,0xF0,0x06,0x88,0x88,0x88,0x88,0xD0,0xE9,0x20,0x26,0x04,0xAD,0xC3, // 0x00000250 ........... &...
0x04,0x0A,0xA9,0x48,0x90,0x02,0xA9,0x44,0x20,0x00,0x04,0x20,0x15,0x04,0x60,0xA0, // 0x00000260 ...H...D .. ..`.
0x8D,0x8C,0x44,0x04,0x20,0x44,0x04,0xA0,0xAD,0x8C,0x44,0x04,0x60,0x10,0x00,0x08, // 0x00000270 ..D. D....D.`...
0x28,0x37,0x0A,0x20,0x00,0xF3,0x0F,0xF2,0x0F,0x0E,0x55,0x0B,0x06,0x5E,0x00,0x34, // 0x00000280 (7. ......U..^.4
0x45,0x4C,0x42,0x4D,0x45,0x53,0x53,0x41,0x45,0x44,0x4F,0x43,0x41,0x54,0x41,0x44, // 0x00000290 ELBMESSAEDOCATAD
0x49,0x43,0x53,0x41,0x45,0x56,0x4F,0x4D,0x45,0x56,0x41,0x53,0x54,0x49,0x44,0x45, // 0x000002A0 ICSAEVOMEVASTIDE
0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39,0x41,0x42,0x43,0x44,0x45,0x46, // 0x000002B0 0123456789ABCDEF
0x2E,0x2E,0x0C,0x2E,0x58,0x1C,0x2E,0x59,0x18,0x2E,0x5A,0x04,0x2E,0x2E,0x08,0x58, // 0x000002C0 ....X..Y..Z....X
0x49,0x00,0x59,0x49,0x10,0x49,0x5A,0x14,0x90,0x42,0x43,0x43,0xB0,0x42,0x43,0x53, // 0x000002D0 I.YI.IZ..BCC.BCS
0xF0,0x42,0x45,0x51,0x30,0x42,0x4D,0x49,0xD0,0x42,0x4E,0x45,0x10,0x42,0x50,0x4C, // 0x000002E0 .BEQ0BMI.BNE.BPL
0x50,0x42,0x56,0x43,0x70,0x42,0x56,0x53,0x4C,0x4A,0x4D,0x50,0x6C,0x4A,0x50,0x49, // 0x000002F0 PBVCpBVSLJMPlJPI
0x20,0x4A,0x53,0x52,0x4A,0x4C,0x53,0x52,0x0A,0x41,0x53,0x4C,0x2A,0x52,0x4F,0x4C, // 0x00000300 JSRJLSR.ASL*ROL
0x6A,0x52,0x4F,0x52,0x58,0x43,0x4C,0x49,0xB8,0x43,0x4C,0x56,0xCA,0x44,0x45,0x58, // 0x00000310 jRORXCLI.CLV.DEX
0x88,0x44,0x45,0x59,0xE8,0x49,0x4E,0x58,0xC8,0x49,0x4E,0x59,0x00,0x42,0x52,0x4B, // 0x00000320 .DEY.INX.INY.BRK
0x18,0x43,0x4C,0x43,0xD8,0x43,0x4C,0x44,0xEA,0x4E,0x4F,0x50,0x48,0x50,0x48,0x41, // 0x00000330 .CLC.CLD.NOPHPHA
0x08,0x50,0x48,0x50,0x68,0x50,0x4C,0x41,0x28,0x50,0x4C,0x50,0x40,0x52,0x54,0x49, // 0x00000340 .PHPhPLA(PLP@RTI
0x60,0x52,0x54,0x53,0x38,0x53,0x45,0x43,0xF8,0x53,0x45,0x44,0x78,0x53,0x45,0x49, // 0x00000350 `RTS8SEC.SEDxSEI
0xAA,0x54,0x41,0x58,0xA8,0x54,0x41,0x59,0xBA,0x54,0x53,0x58,0x8A,0x54,0x58,0x41, // 0x00000360 .TAX.TAY.TSX.TXA
0x9A,0x54,0x58,0x53,0x98,0x54,0x59,0x41,0xE0,0x43,0x50,0x58,0x98,0xC0,0x43,0x50, // 0x00000370 .TXS.TYA.CPX..CP
0x59,0x98,0xA2,0x4C,0x44,0x58,0xB9,0xA0,0x4C,0x44,0x59,0xD9,0xC1,0x43,0x4D,0x50, // 0x00000380 Y..LDX..LDY..CMP
0xFF,0x61,0x41,0x44,0x43,0xFF,0x21,0x41,0x4E,0x44,0xFF,0xC2,0x44,0x45,0x43,0xD1, // 0x00000390 .aADC.!AND..DEC.
0x41,0x45,0x4F,0x52,0xFF,0xE2,0x49,0x4E,0x43,0xD1,0xA1,0x4C,0x44,0x41,0xFF,0x02, // 0x000003A0 AEOR..INC..LDA..
0x41,0x53,0x4C,0xD1,0x20,0x42,0x49,0x54,0x90,0x42,0x4C,0x53,0x52,0xD1,0x01,0x4F, // 0x000003B0 ASL. BIT.BLSR..O
0x52,0x41,0xFF,0x22,0x52,0x4F,0x4C,0xD1,0x62,0x52,0x4F,0x52,0xD1,0xE1,0x53,0x42, // 0x000003C0 RA."ROL.bROR..SB
0x43,0xFF,0x81,0x53,0x54,0x41,0xF7,0x82,0x53,0x54,0x58,0x91,0x80,0x53,0x54,0x59, // 0x000003D0 C..STA..STX..STY
0x91,0x01,0x0A,0x64,0x03,0x04,0x01,0x0D,0x13,0x05,0x20,0x10,0x08,0x04,0x02,0x01, // 0x000003E0 ...d...... .....
0x8D,0xBD,0x04,0x08,0x68,0x8D,0xC1,0x04,0x8E,0xBE,0x04,0x8C,0xBF,0x04,0xBA,0x8E, // 0x000003F0 ....h...........
0xC0,0x04,0xD8,0xA2,0x00,0xA9,0x20,0x9D,0x00,0xD0,0x9D,0x00,0xD1,0x9D,0x00,0xD2, // 0x00000400 ...... .........
0x9D,0x00,0xD3,0xE8,0xD0,0xF1,0xA9,0x52,0x8D,0xC7,0xD0,0xA9,0x2F,0x8D,0xC8,0xD0, // 0x00000410 .......R..../...
0xA9,0x53,0x8D,0xC9,0xD0,0x20,0x00,0xFD,0xC9,0x53,0xF0,0x06,0xC9,0x52,0xF0,0x16, // 0x00000420 .S... ...S...R..
0xD0,0xF3,0xA9,0x00,0x8D,0x7C,0x06,0xAA,0xA0,0x03,0x9D,0x00,0x47,0xE8,0xD0,0xFA, // 0x00000430 .....|......G...
0xEE,0x7C,0x06,0x88,0xD0,0xF4,0xA2,0xFF,0x9A,0xA9,0x4C,0x8D,0xC0,0x01,0xA9,0x30, // 0x00000440 .|........L....0
0x8D,0xC1,0x01,0xA9,0x16,0x8D,0xC2,0x01,0xA9,0x20,0x8D,0xC3,0x04,0xA9,0x00,0x8D, // 0x00000450 ......... ......
0xC4,0x04,0x8D,0xC7,0x04,0x8D,0xC8,0x04,0xA9,0x60,0x8D,0x0B,0x04,0x20,0x67,0x04, // 0x00000460 .........`... g.
0xAD,0xC7,0x04,0x8D,0x45,0x04,0xAD,0xC8,0x04,0x8D,0x46,0x04,0xA9,0x07,0x8D,0x12, // 0x00000470 ....E.....F.....
0x04,0xA9,0xD1,0x8D,0x13,0x04,0xA9,0x12,0x8D,0xCE,0x04,0xAD,0x46,0x04,0x20,0x50, // 0x00000480 ............F. P
0x04,0xAD,0x45,0x04,0x20,0x50,0x04,0xAD,0xC3,0x04,0x0A,0x0A,0x90,0x05,0xA0,0xA9, // 0x00000490 ..E. P..........
0x8C,0x0B,0x04,0x48,0x20,0x26,0x04,0x68,0x90,0x03,0x4C,0x7C,0x08,0x0A,0x0A,0x90, // 0x000004A0 ...H &.h..L|....
0x03,0x4C,0x71,0x08,0x0A,0x90,0x16,0xA0,0x05,0x20,0x2C,0x04,0x20,0x44,0x04,0x20, // 0x000004B0 .Lq...... ,. D.
0x00,0x04,0x20,0x26,0x04,0xA0,0x04,0x20,0x2C,0x04,0x4C,0x70,0x07,0x20,0x4A,0x07, // 0x000004C0 .. &... ,.Lp. J.
0xE0,0x00,0xF0,0x47,0xA0,0x03,0xE8,0xBD,0x14,0x05,0x20,0x00,0x04,0x88,0xD0,0xF6, // 0x000004D0 ...G...... .....
0xA0,0x03,0x20,0x2C,0x04,0x20,0x26,0x04,0xE0,0x24,0x10,0x32,0x20,0x44,0x04,0xAA, // 0x000004E0 .. ,. &..$.2 D..
0x18,0x6D,0x45,0x04,0x48,0xA9,0x00,0x6D,0x46,0x04,0xA8,0x8A,0x10,0x01,0x88,0x98, // 0x000004F0 .mE.H..mF.......
0x20,0x50,0x04,0x68,0x20,0x50,0x04,0x4C,0x70,0x07,0x20,0x44,0x04,0xA2,0xA0,0xDD, // 0x00000500 P.h P.Lp. D....
0x14,0x05,0xF0,0x06,0xCA,0xCA,0xCA,0xCA,0xD0,0xF5,0x60,0x4C,0xE8,0x07,0xE0,0x30, // 0x00000510 ..........`L...0
0x10,0x32,0x20,0x44,0x04,0x48,0x20,0x44,0x04,0x20,0x50,0x04,0x68,0x20,0x50,0x04, // 0x00000520 .2 D.H D. P.h P.
0x20,0x15,0x04,0x20,0x35,0x04,0xCE,0xCE,0x04,0xF0,0x16,0xA9,0x11,0xCD,0xCE,0x04, // 0x00000530 .. 5...........
0xD0,0x0C,0xAD,0x45,0x04,0x8D,0xC5,0x04,0xAD,0x46,0x04,0x8D,0xC6,0x04,0x4C,0xCB, // 0x00000540 ...E.....F....L.
0x06,0x4C,0x8D,0x08,0xA0,0x04,0x20,0x2C,0x04,0xF0,0xD5,0x8D,0xCD,0x04,0xA8,0x29, // 0x00000550 .L.... ,.......)
0xE3,0xA2,0x69,0xDD,0xB3,0x05,0xF0,0x08,0xCA,0xCA,0xCA,0xCA,0xCA,0xD0,0xF4,0x60, // 0x00000560 ..i............`
0x8E,0xCB,0x04,0x98,0x18,0x29,0x1C,0xE0,0x18,0x10,0x06,0xC9,0x00,0xD0,0x02,0xA9, // 0x00000570 .....)..........
0x08,0xC0,0xBE,0xD0,0x02,0xA9,0x18,0xA0,0x00,0xA2,0x18,0xC8,0xDD,0xFF,0x04,0xF0, // 0x00000580 ................
0x05,0xCA,0xCA,0xCA,0xD0,0xF5,0x8E,0xCC,0x04,0xAE,0xCB,0x04,0xBD,0xB7,0x05,0x4A, // 0x00000590 ...............J
0x88,0xD0,0xFC,0xB0,0x02,0xA2,0x00,0x60,0x20,0x9B,0x07,0xE0,0x00,0xD0,0x13,0xA0, // 0x000005A0 .......` .......
0x06,0x20,0x2C,0x04,0x20,0x26,0x04,0xA0,0x02,0x20,0x2C,0x04,0xAD,0xCD,0x04,0x4C, // 0x000005B0 . ,. &... ,....L
0x6D,0x07,0xA0,0x03,0xE8,0xBD,0xB3,0x05,0x20,0x00,0x04,0x88,0xD0,0xF6,0xC8,0x20, // 0x000005C0 m....... ......
0x2C,0x04,0xAE,0xCC,0x04,0xA0,0x02,0xCA,0xBD,0xFF,0x04,0x20,0x00,0x04,0x88,0xD0, // 0x000005D0 ,.......... ....
0xF6,0x20,0x26,0x04,0xE0,0x08,0x10,0x03,0x4C,0x62,0x07,0xE0,0x0D,0xF0,0x09,0x20, // 0x000005E0 . &.....Lb.....
0x44,0x04,0x48,0xA9,0x00,0x4C,0x69,0x07,0x20,0x44,0x04,0xAA,0xAD,0xC3,0x04,0x0A, // 0x000005F0 D.H..Li. D......
0xB0,0x23,0xA0,0x02,0x20,0x2C,0x04,0x8A,0x4C,0x6D,0x07,0xA2,0x03,0xA0,0x00,0x38, // 0x00000600 .#.. ,..Lm.....8
0xFD,0x20,0x06,0xC8,0xB0,0xFA,0x7D,0x20,0x06,0x48,0xB9,0xEF,0x04,0x20,0x00,0x04, // 0x00000610 . ....} .H... ..
0x68,0xCA,0xD0,0xE9,0x60,0xA0,0x01,0x20,0x2C,0x04,0x8A,0x20,0x4B,0x08,0x4C,0x70, // 0x00000620 h...`.. ,.. K.Lp
0x07,0xA0,0x06,0x20,0x2C,0x04,0x20,0x26,0x04,0x4C,0x38,0x08,0x0A,0x0A,0x90,0x0D, // 0x00000630 ... ,. &.L8.....
0xA0,0x06,0x20,0x2C,0x04,0x20,0x26,0x04,0xA2,0x04,0x4C,0x8F,0x08,0xA2,0x0B,0x8E, // 0x00000640 .. ,. &...L.....
0xCB,0x04,0x4C,0xD1,0x0F,0x48,0xA0,0x06,0xD9,0x23,0x06,0xF0,0x05,0x88,0xD0,0xF8, // 0x00000650 ..L..H...#......
0xF0,0x11,0xAD,0xC3,0x04,0x29,0xC0,0xC0,0x04,0x90,0x02,0x29,0x80,0x19,0x29,0x06, // 0x00000660 .....).....)..).
0x4C,0xE0,0x0F,0xC9,0x02,0xD0,0x36,0xAD,0xC3,0x04,0x49,0x80,0x8D,0xC3,0x04,0x0A, // 0x00000670 L.....6...I.....
0x0A,0x68,0x90,0x26,0xAD,0x12,0x04,0x48,0xAD,0x13,0x04,0x48,0x20,0x67,0x04,0x68, // 0x00000680 .h.&...H...H g.h
0x8D,0x13,0x04,0x68,0x8D,0x12,0x04,0x20,0x15,0x04,0xAD,0x12,0x04,0x18,0x6D,0xCB, // 0x00000690 ...h... ......m.
0x04,0x38,0xE9,0x10,0x8D,0x12,0x04,0x4C,0xCB,0x06,0x4C,0xA8,0x06,0xC9,0x17,0xD0, // 0x000006A0 .8.....L..L.....
0x1A,0xAD,0xC3,0x04,0x49,0x40,0x8D,0xC3,0x04,0x29,0x07,0xF0,0x0A,0xAD,0xC3,0x04, // 0x000006B0 ....I@...)......
0x29,0xF8,0x09,0x20,0x20,0xD8,0x03,0x68,0x4C,0xA8,0x06,0xC9,0x1B,0xD0,0x04,0x68, // 0x000006C0 ).. ..hL......h
0x4C,0x42,0x06,0xC9,0x11,0xD0,0x13,0xA9,0x20,0xA2,0x00,0x9D,0x00,0xD1,0x9D,0x00, // 0x000006D0 LB...... .......
0xD2,0x9D,0x00,0xD3,0xE8,0xD0,0xF4,0x4C,0x0F,0x0D,0xAD,0xC3,0x04,0x0A,0x0A,0x68, // 0x000006E0 .......L.......h
0xAE,0xCB,0x04,0x90,0x03,0x4C,0xC0,0x09,0xA0,0x10,0xD9,0xEF,0x04,0xF0,0x05,0x88, // 0x000006F0 .....L..........
0xD0,0xF8,0xF0,0x26,0x4E,0xC4,0x04,0xB0,0x09,0xA2,0x00,0x8E,0xC5,0x04,0x8E,0xC6, // 0x00000700 ...&N...........
0x04,0x38,0x2E,0xC4,0x04,0x88,0x98,0x0A,0x0A,0x0A,0x0A,0xA0,0x04,0x0A,0x2E,0xC5, // 0x00000710 .8..............
0x04,0x2E,0xC6,0x04,0x88,0xD0,0xF6,0x4C,0xA8,0x09,0xC9,0x0D,0xD0,0x16,0xAD,0xC5, // 0x00000720 .......L........
0x04,0x8D,0xC7,0x04,0xAD,0xC6,0x04,0x8D,0xC8,0x04,0x4E,0xC4,0x04,0x18,0x2E,0xC4, // 0x00000730 ..........N.....
0x04,0x4C,0xA8,0x06,0xC9,0x1D,0xD0,0x19,0xAD,0xC4,0x04,0x4A,0x90,0x03,0x4C,0x6E, // 0x00000740 .L.........J..Ln
0x09,0xCE,0xC7,0x04,0xA0,0xFF,0xCC,0xC7,0x04,0xD0,0x03,0xCE,0xC8,0x04,0x4C,0xA8, // 0x00000750 ..............L.
0x06,0xC9,0x18,0xD0,0x03,0x4C,0xDF,0x03,0x4C,0xEB,0x0D,0x4A,0x90,0x03,0x4C,0x04, // 0x00000760 .....L..L..J..L.
0x0E,0x4A,0x90,0x03,0x4C,0x1C,0x0D,0x4A,0x90,0x03,0x4C,0x79,0x0D,0x4C,0x92,0x08, // 0x00000770 .J..L..J..Ly.L..
0xC9,0x0A,0xD0,0x06,0x20,0x47,0x04,0x4C,0xD7,0x08,0xC9,0x1A,0xD0,0x10,0xCE,0x45, // 0x00000780 .... G.L.......E
0x04,0xA0,0xFF,0xCC,0x45,0x04,0xD0,0x03,0xCE,0x46,0x04,0x4C,0xD7,0x08,0xC9,0x7F, // 0x00000790 ....E....F.L....
0xD0,0x11,0xE0,0x0B,0xF0,0x0A,0xE8,0x20,0x15,0x04,0xCE,0x12,0x04,0x20,0x0B,0x04, // 0x000007A0 ....... ..... ..
0x4C,0x8F,0x08,0xC9,0x0D,0xD0,0x03,0x4C,0x31,0x0A,0xC9,0x20,0x90,0xF2,0xC9,0x5B, // 0x000007B0 L......L1.. ...[
0xB0,0xEE,0xCA,0x10,0x03,0xE8,0xF0,0xE8,0xC9,0x20,0xF0,0x05,0x20,0x00,0x04,0xD0, // 0x000007C0 ......... .. ...
0x03,0x20,0x17,0x0A,0x4C,0x8F,0x08,0xA0,0x01,0xE0,0x05,0x30,0x07,0x20,0x2C,0x04, // 0x000007D0 . ..L......0. ,.
0xC8,0xCA,0xD0,0xF5,0x20,0x26,0x04,0x60,0xB9,0x0B,0xD1,0x60,0x41,0x58,0x59,0x53, // 0x000007E0 .... &.`...`AXYS
0x50,0x8E,0xC2,0x04,0x38,0xA9,0x0C,0xED,0xCB,0x04,0x49,0xFF,0x18,0x69,0x01,0x6D, // 0x000007F0 P...8.....I..i.m
0x12,0x04,0x8D,0x29,0x0A,0xAD,0x13,0x04,0x8D,0x2A,0x0A,0xE0,0x05,0x90,0x68,0xCA, // 0x00000800 ...).....*....h.
0x20,0x17,0x0A,0xA0,0x02,0x20,0x28,0x0A,0xC9,0x3F,0xD0,0x40,0x88,0x20,0x28,0x0A, // 0x00000810 .... (..?.@. (.
0xA0,0x05,0xD9,0x2B,0x0A,0xF0,0x05,0x88,0xD0,0xF8,0xF0,0x4B,0xB9,0xBC,0x04,0x48, // 0x00000820 ...+.......K...H
0xAD,0xC3,0x04,0x0A,0xB0,0x1A,0xA0,0x02,0x20,0x2C,0x04,0x68,0x20,0x50,0x04,0x20, // 0x00000830 ........ ,.h P.
0x15,0x04,0x20,0x35,0x04,0xCE,0xCE,0x04,0xF0,0x03,0x4C,0xCB,0x06,0x4C,0xBC,0x06, // 0x00000840 .. 5......L..L..
0xA0,0x01,0x20,0x2C,0x04,0x68,0x20,0x4B,0x08,0x4C,0x7F,0x0A,0xAD,0xC3,0x04,0x29, // 0x00000850 .. ,.h K.L.....)
0x08,0xF0,0x14,0x88,0x20,0x28,0x0A,0xA0,0x0B,0xCC,0xC2,0x04,0xD0,0x02,0xA9,0x20, // 0x00000860 .... (.........
0x20,0xAF,0x04,0x48,0x4C,0x70,0x0A,0xCA,0x30,0x07,0xA0,0x01,0x20,0x2C,0x04,0xF0, // 0x00000870 ..HLp..0... ,..
0xF6,0xAD,0xC3,0x04,0x29,0x10,0xF0,0x03,0x4C,0x45,0x0C,0xA0,0x01,0x20,0x28,0x0A, // 0x00000880 ....)...LE... (.
0xC9,0x2E,0xF0,0xF4,0xAE,0xC2,0x04,0xE0,0x05,0x30,0x03,0x4C,0x71,0x0C,0xA2,0x69, // 0x00000890 .........0.Lq..i
0xA0,0x03,0x20,0x28,0x0A,0xDD,0xB6,0x05,0xD0,0x06,0xCA,0x88,0xD0,0xF4,0xF0,0x0A, // 0x000008A0 .. (............
0xCA,0x88,0xD0,0xFC,0xCA,0xCA,0xD0,0xE8,0xF0,0xE1,0x8E,0xCC,0x04,0xA2,0x18,0xA0, // 0x000008B0 ................
0x05,0x20,0x28,0x0A,0xDD,0xFE,0x04,0xD0,0x09,0xC8,0x20,0x28,0x0A,0xDD,0xFD,0x04, // 0x000008C0 . (....... (....
0xF0,0x0A,0xCA,0xCA,0xCA,0xD0,0xE8,0xA2,0x00,0x4C,0x8F,0x08,0xA0,0x04,0x20,0x28, // 0x000008D0 .........L.... (
0x0A,0x29,0xFC,0xC9,0x2C,0xD0,0xF0,0xA0,0x07,0x20,0x28,0x0A,0xC9,0x20,0xD0,0xE7, // 0x000008E0 .)..,.... (.. ..
0xE0,0x0F,0xD0,0x11,0xA0,0x08,0x20,0x28,0x0A,0xC9,0x2E,0x4C,0x5D,0x0C,0xC8,0xC0, // 0x000008F0 ...... (...L]...
0x0C,0xD0,0xF3,0xA2,0x03,0xAC,0xCC,0x04,0xB9,0xBA,0x05,0x8E,0xCD,0x04,0x0A,0xCA, // 0x00000900 ................
0xCA,0xCA,0xD0,0xFA,0x90,0xC1,0xAE,0xCD,0x04,0xBD,0xFF,0x04,0xC9,0x08,0xD0,0x06, // 0x00000910 ................
0xC0,0x14,0x10,0x02,0xA9,0x00,0x19,0xB6,0x05,0xC9,0xBA,0xD0,0x02,0xA9,0xBE,0x8D, // 0x00000920 ................
0xCB,0x04,0x20,0xBA,0x0B,0xAE,0xCD,0x04,0xE0,0x0F,0xD0,0x09,0xAD,0xC3,0x04,0x0A, // 0x00000930 .. .............
0x90,0x03,0x20,0xF9,0x0B,0xAE,0xCD,0x04,0xE0,0x0A,0x30,0x07,0xAD,0xC9,0x04,0xC9, // 0x00000940 .. .......0.....
0x00,0xD0,0x84,0xAD,0xCB,0x04,0x20,0xAF,0x04,0xAD,0xCA,0x04,0x20,0xAF,0x04,0xE0, // 0x00000950 ...... ..... ...
0x0A,0x10,0x06,0xAD,0xC9,0x04,0x20,0xAF,0x04,0x4C,0x7F,0x0A,0xA0,0x00,0x8C,0xC9, // 0x00000960 ...... ..L......
0x04,0x8C,0xCA,0x04,0xA0,0x08,0x20,0x28,0x0A,0x60,0x4C,0xF8,0x0C,0xC9,0x2F,0xD0, // 0x00000970 ...... (.`L.../.
0x0A,0xC8,0x20,0x28,0x0A,0x8D,0xCA,0x04,0x4C,0xF8,0x0B,0xA2,0x10,0x20,0x28,0x0A, // 0x00000980 .. (....L.... (.
0xDD,0xEF,0x04,0xF0,0x0C,0xCA,0xD0,0xF8,0xC9,0x2E,0xF0,0x17,0x68,0x68,0x4C,0x17, // 0x00000990 ............hhL.
0x0B,0xCA,0x8A,0xA2,0x04,0x0A,0x0A,0x0A,0x0A,0x0A,0x2E,0xCA,0x04,0x2E,0xC9,0x04, // 0x000009A0 ................
0xCA,0xD0,0xF6,0xC8,0xC0,0x0C,0xD0,0xD3,0x60,0x20,0xAC,0x0B,0xC9,0x2F,0xF0,0xC1, // 0x000009B0 ........` .../..
0xA0,0x0B,0x8C,0xCC,0x04,0xA9,0x00,0x8D,0x7C,0x06,0x48,0xAC,0xCC,0x04,0x20,0x28, // 0x000009C0 ........|.H... (
0x0A,0xA2,0x0A,0xDD,0xEF,0x04,0xF0,0x0B,0xCA,0xD0,0xF8,0xAA,0x68,0xE0,0x2E,0xF0, // 0x000009D0 ............h...
0x16,0xD0,0xB9,0xCA,0x68,0xAC,0x7C,0x06,0xCA,0x30,0x09,0x18,0x79,0x21,0x06,0xB0, // 0x000009E0 ....h.|..0..y!..
0xAB,0xCA,0x10,0xF8,0xEE,0x7C,0x06,0xCE,0xCC,0x04,0xA0,0x07,0xCC,0xCC,0x04,0xD0, // 0x000009F0 .....|..........
0xC9,0x8D,0xCA,0x04,0x60,0x20,0xBA,0x0B,0xAD,0xC3,0x04,0x0A,0x90,0x03,0x20,0xF9, // 0x00000A00 ....` ........ .
0x0B,0xA9,0x00,0xCD,0xC9,0x04,0xD0,0x86,0xA2,0x0B,0x4C,0x99,0x0B,0xF0,0x03,0x4C, // 0x00000A10 ..........L....L
0x3E,0x0B,0xAC,0xCC,0x04,0xB9,0xBA,0x05,0x29,0x08,0xD0,0x02,0xA2,0x03,0x4C,0x45, // 0x00000A20 ........).....LE
0x0B,0xA2,0xA0,0xA0,0x03,0x20,0x28,0x0A,0xDD,0x17,0x05,0xD0,0x06,0xCA,0x88,0xD0, // 0x00000A30 ..... (.........
0xF4,0xF0,0x0A,0xCA,0x88,0xD0,0xFC,0xCA,0xD0,0xE9,0x4C,0x17,0x0B,0xBD,0x17,0x05, // 0x00000A40 ..........L.....
0x8D,0xCB,0x04,0xE0,0x20,0x30,0x12,0xE0,0x2C,0x10,0x08,0x20,0xBA,0x0B,0xA2,0x00, // 0x00000A50 .... 0..,.. ....
0x4C,0x93,0x0B,0x20,0xAF,0x04,0x4C,0x7F,0x0A,0x20,0xBA,0x0B,0x38,0xAD,0xCA,0x04, // 0x00000A60 L.. ..L.. ..8...
0xE9,0x02,0x8D,0xCA,0x04,0xB0,0x03,0xCE,0xC9,0x04,0x38,0xAD,0xCA,0x04,0xED,0x45, // 0x00000A70 ..........8....E
0x04,0xAA,0xAD,0xC9,0x04,0xED,0x46,0x04,0x08,0xC9,0x00,0xF0,0x08,0xC9,0xFF,0xF0, // 0x00000A80 ......F.........
0x04,0x28,0x4C,0x17,0x0B,0x8A,0xA0,0xFF,0xCC,0xC9,0x04,0xD0,0x04,0x28,0x4C,0xE9, // 0x00000A90 .(L..........(L.
0x0C,0x28,0x90,0x05,0x0A,0xB0,0xEB,0x90,0x03,0x0A,0x90,0xE6,0x6A,0xAA,0xAD,0xCB, // 0x00000AA0 .(..........j...
0x04,0x20,0xAF,0x04,0x8A,0x4C,0xA6,0x0B,0xA0,0x08,0x20,0x28,0x0A,0xC9,0x2E,0xD0, // 0x00000AB0 . ...L.... (....
0x08,0xC8,0xC0,0x0C,0xD0,0xF4,0x4C,0xDC,0x0B,0x20,0xAC,0x0B,0x4C,0xBD,0x0B,0xAD, // 0x00000AC0 ......L.. ..L...
0xC3,0x04,0x0A,0x0A,0xB0,0x03,0x4C,0xF1,0x08,0x4C,0xBC,0x06,0xAD,0xFC,0x03,0xC9, // 0x00000AD0 ......L..L......
0x20,0xD0,0x40,0xAD,0xC4,0x04,0x4A,0xB0,0x3A,0xAD,0xC7,0x04,0x8D,0x36,0x0D,0xAD, // 0x00000AE0 .@...J.:....6..
0xC8,0x04,0x8D,0x37,0x0D,0xAD,0x56,0x0F,0xA8,0x4A,0x4A,0x4A,0x4A,0x20,0x6C,0x0D, // 0x00000AF0 ...7..V..JJJJ l.
0x98,0x29,0x0F,0x20,0x6C,0x0D,0xA9,0x0D,0x20,0x70,0x0D,0xEE,0x36,0x0D,0xD0,0x03, // 0x00000B00 .). l... p..6...
0xEE,0x37,0x0D,0xAD,0xC5,0x04,0xCD,0x36,0x0D,0xD0,0xDA,0xA9,0x01,0x8D,0xFF,0x03, // 0x00000B10 .7.....6........
0x4C,0x6E,0x09,0xAD,0xFC,0x03,0x20,0x70,0x0D,0x4C,0x92,0x08,0xAA,0xBD,0xF0,0x04, // 0x00000B20 Ln.... p.L......
0x8D,0x01,0xF0,0xA9,0x12,0x20,0x1B,0x04,0x60,0xAD,0xFC,0x03,0xC9,0x4D,0xD0,0x68, // 0x00000B30 ..... ..`....M.h
0xAD,0xC4,0x04,0x4A,0xB0,0x05,0x4A,0xB0,0x0E,0x90,0x54,0xAD,0xC5,0x04,0x8D,0xAE, // 0x00000B40 ...J..J...T.....
0x0D,0xAD,0xC6,0x04,0x8D,0xAF,0x0D,0xAD,0xAF,0x0D,0xC9,0x03,0xB0,0x41,0xAD,0xC7, // 0x00000B50 .............A..
0x04,0x8D,0xAB,0x0D,0xAD,0xC8,0x04,0x8D,0xAC,0x0D,0xAD,0x00,0x00,0x8D,0x00,0x00, // 0x00000B60 ................
0xEE,0xAB,0x0D,0xD0,0x03,0xEE,0xAC,0x0D,0xEE,0xAE,0x0D,0xD0,0x03,0xEE,0xAF,0x0D, // 0x00000B70 ................
0xAD,0xAF,0x0D,0xC9,0x03,0xF0,0x18,0xAD,0xAB,0x0D,0xCD,0x45,0x04,0xD0,0xDB,0xAD, // 0x00000B80 ...........E....
0xAC,0x0D,0xCD,0x46,0x04,0xD0,0xD3,0xA9,0x02,0x8D,0xC4,0x04,0x4C,0xA8,0x06,0xA9, // 0x00000B90 ...F........L...
0x00,0x8D,0xC4,0x04,0x48,0x4C,0xFD,0x08,0x4C,0x92,0x08,0xC9,0x0A,0xD0,0x0F,0xAD, // 0x00000BA0 ....HL..L.......
0x45,0x04,0x8D,0xC7,0x04,0xAD,0x46,0x04,0x8D,0xC8,0x04,0x4C,0xA8,0x06,0xAD,0xC3, // 0x00000BB0 E.....F....L....
0x04,0x4C,0xAB,0x09,0x4C,0x33,0x0F,0xC9,0x59,0xF0,0x0E,0xC9,0x5F,0xD0,0xD9,0xA2, // 0x00000BC0 .L..L3..Y..._...
0xFF,0x8E,0xC9,0x04,0x8E,0xCA,0x04,0xD0,0x09,0xA2,0x01,0x8E,0xC9,0x04,0xCA,0x8E, // 0x00000BD0 ................
0xCA,0x04,0xAD,0xC4,0x04,0x4A,0xB0,0x06,0x18,0x4A,0xB0,0x13,0x90,0xB1,0xAD,0xC5, // 0x00000BE0 .....J...J......
0x04,0x8D,0xAE,0x0D,0xAD,0xC6,0x04,0x8D,0xAF,0x0D,0xA9,0x02,0x8D,0xC4,0x04,0xAD, // 0x00000BF0 ................
0xAE,0x0D,0x8D,0x45,0x04,0xAD,0xAF,0x0D,0x8D,0x46,0x04,0xC9,0x01,0xF0,0x90,0xC9, // 0x00000C00 ...E.....F......
0x01,0xF0,0x8C,0xC9,0x03,0xB0,0x88,0xAD,0x46,0x04,0xC9,0x03,0xD0,0x03,0x4C,0xA8, // 0x00000C10 ........F.....L.
0x06,0xC9,0x01,0xF0,0xF9,0x20,0x4A,0x07,0xE0,0x00,0xF0,0x5F,0xE0,0x58,0xF0,0xEE, // 0x00000C20 ..... J...._.X..
0xE0,0x24,0x90,0x6B,0xE0,0x30,0xB0,0xDF,0x20,0x44,0x04,0x8D,0xCC,0x04,0xAD,0x46, // 0x00000C30 .$.k.0.. D.....F
0x04,0xC9,0x03,0xF0,0xCC,0xC9,0x01,0xF0,0xC8,0x20,0x44,0x04,0x8D,0xCD,0x04,0xC9, // 0x00000C40 ......... D.....
0xFF,0xC9,0x01,0xF0,0xC2,0xC9,0x03,0xB0,0xBE,0x38,0xAD,0xCC,0x04,0xED,0xC7,0x04, // 0x00000C50 .........8......
0xAD,0xCD,0x04,0xED,0xC8,0x04,0x90,0xAF,0xAD,0x45,0x04,0xE9,0x02,0x8D,0x45,0x04, // 0x00000C60 .........E....E.
0xB0,0x03,0xCE,0x46,0x04,0x18,0xAD,0xCC,0x04,0x6D,0xC9,0x04,0x20,0xAF,0x04,0xAD, // 0x00000C70 ...F.....m.. ...
0xCD,0x04,0x6D,0xCA,0x04,0x20,0xAF,0x04,0x4C,0x57,0x0E,0x20,0x9B,0x07,0xE0,0x00, // 0x00000C80 ..m.. ..LW. ....
0xF0,0x8C,0xAD,0xCC,0x04,0xC9,0x0A,0xB0,0x03,0x20,0x47,0x04,0x4C,0xE8,0x0F,0x20, // 0x00000C90 ......... G.L..
0x44,0x04,0xA8,0xAD,0xC7,0x04,0x38,0xED,0x45,0x04,0x8D,0xCC,0x04,0xAD,0xC8,0x04, // 0x00000CA0 D.....8.E.......
0xED,0x46,0x04,0xB0,0x29,0xC9,0xFF,0xD0,0x22,0x98,0x10,0x1F,0x38,0xED,0xCC,0x04, // 0x00000CB0 .F..)..."...8...
0xB0,0x19,0xC8,0xAD,0xC9,0x04,0x30,0x02,0x88,0x88,0xCE,0x45,0x04,0xA2,0xFF,0xEC, // 0x00000CC0 ......0....E....
0x45,0x04,0xD0,0x03,0xCE,0x46,0x04,0x98,0x20,0xAF,0x04,0x4C,0x57,0x0E,0xC9,0x00, // 0x00000CD0 E....F.. ..LW...
0xD0,0xF9,0x98,0x30,0xF6,0x38,0xC8,0xED,0xCC,0x04,0x90,0xEF,0x4C,0xEE,0x0F,0x30, // 0x00000CE0 ...0.8......L..0
0xD7,0x10,0xD7,0xAD,0xC8,0x04,0xC9,0x01,0xF0,0x08,0xC9,0x01,0xF0,0x04,0xC9,0x03, // 0x00000CF0 ................
0x90,0x03,0x4C,0xDF,0x0D,0xAE,0xC7,0x04,0xAD,0xFC,0x03,0xC9,0x49,0xF0,0x07,0xC9, // 0x00000D00 ..L.........I...
0x4F,0xF0,0x37,0x4C,0x07,0x0E,0x8E,0x69,0x0F,0x8E,0x6C,0x0F,0xAE,0xC8,0x04,0x8E, // 0x00000D10 O.7L...i..l.....
0x6A,0x0F,0x8E,0x6D,0x0F,0xA9,0xEA,0xAA,0xAD,0x00,0x01,0x8E,0x00,0x01,0xEE,0x69, // 0x00000D20 j..m...........i
0x0F,0xEE,0x6C,0x0F,0xD0,0x06,0xEE,0x6A,0x0F,0xEE,0x6D,0x0F,0xAE,0x6D,0x0F,0xE0, // 0x00000D30 ..l....j..m..m..
0x01,0xF0,0x04,0xE0,0x03,0xD0,0xE0,0x4C,0x7A,0x09,0x8E,0xB2,0x0F,0xE8,0x8E,0xA2, // 0x00000D40 .......Lz.......
0x0F,0x08,0xAE,0xC8,0x04,0x8E,0xB3,0x0F,0x8E,0xA3,0x0F,0x28,0xD0,0x03,0xEE,0xA3, // 0x00000D50 ...........(....
0x0F,0xAD,0x01,0x01,0xAE,0xA3,0x0F,0xE0,0x01,0xF0,0x04,0xE0,0x03,0xD0,0x02,0xA9, // 0x00000D60 ................
0x00,0x8D,0x00,0x01,0xEE,0xA2,0x0F,0xD0,0x03,0xEE,0xA3,0x0F,0xEE,0xB2,0x0F,0xD0, // 0x00000D70 ................
0x03,0xEE,0xB3,0x0F,0xAE,0xB3,0x0F,0xE0,0x01,0xF0,0xBC,0xE0,0x03,0xF0,0xB8,0xD0, // 0x00000D80 ................
0xD0,0x20,0x00,0x03,0x48,0xCD,0xFE,0x03,0xD0,0x03,0x4C,0x0B,0x09,0x4C,0x96,0x08, // 0x00000D90 . ..H.....L..L..
0xA0,0x00,0x8C,0xC4,0x04,0x4C,0xBC,0x08,0x20,0x47,0x04,0x4C,0x57,0x0E,0x08,0xAD, // 0x00000DA0 .....L.. G.LW...
0xC9,0x04,0xAA,0x28,0xD0,0x06,0x8A,0x10,0x03,0x4C,0x1B,0x0F,0x8A,0x4C,0x2F,0x0F] // 0x00000DB0 ...(.....L...L/.
}

View file

@ -1,17 +1,14 @@
--- ---
layout: page layout: page
title: Challenger 1P Programming Guides/Samples title: Challenger 1P 6502 Assembler/Disassembler
permalink: /pubs/c1p/programming/ permalink: /apps/c1p/6502/jeffpar/assembler/
redirect_from:
- /pubs/c1p/programming/
--- ---
Challenger 1P Programming Guides 6502 ASSEMBLER/DISASSEMBLER
--- ---
Challenger 1P Programming Samples
---
### 6502 ASSEMBLER/DISASSEMBLER
This "source code listing" from June 19, 1980 is for the first piece of software I sold, right around the This "source code listing" from June 19, 1980 is for the first piece of software I sold, right around the
time I graduated from high school. I had had my Ohio Scientific Challenger 1P for maybe a year when I decided time I graduated from high school. I had had my Ohio Scientific Challenger 1P for maybe a year when I decided
to write something that would make it easier to write "machine language" programs than the incredibly tedious to write something that would make it easier to write "machine language" programs than the incredibly tedious
@ -28,4 +25,4 @@ Anyway, to satisfy the buyer, I sat down at my old manual typewriter and banged
code" listing. I produced it mostly by using the program to disassemble itself, combined with information code" listing. I produced it mostly by using the program to disassemble itself, combined with information
from hand-written notes (which I may still have somewhere). Here it is, many decades later, for your amusement. from hand-written notes (which I may still have somewhere). Here it is, many decades later, for your amusement.
[<img src="http://archive.pcjs.org/pubs/c1p/programming/thumbs/OSI_Assembler-Disassembler_Listing-thumb.jpg" width="200" height="260" alt="6502 Disassembler Listing (by Jeff Parsons, June 1980)"/>](http://archive.pcjs.org/pubs/c1p/programming/pdfs/OSI_Assembler-Disassembler_Listing.pdf) [<img src="http://archive.pcjs.org/apps/c1p/6502/jeffpar/assembler/thumbs/OSI_Assembler-Disassembler_Listing-thumb.jpg" width="200" height="260" alt="6502 Disassembler Listing (by Jeff Parsons, June 1980)"/>](http://archive.pcjs.org/apps/c1p/6502/jeffpar/assembler/pdfs/OSI_Assembler-Disassembler_Listing.pdf)

View file

@ -1,12 +1,12 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<serial id="serialPort" pos="left" padleft="8px"> <serial id="serialPort" pos="left" padleft="8px">
<control type="list" binding="listSerial"> <control type="list" binding="listSerial">
<item ref="/apps/c1p/6502/jeffpar/assembler/ASSEMBLER-1.json">6502 DISASSEMBLER-1 (JP)</item> <item ref="/apps/c1p/6502/jeffpar/assembler/ASSEMBLER-4K.json">6502 4K Assembler (JP)</item>
<item ref="/apps/c1p/6502/jeffpar/assembler/ASSEMBLER-2.json">6502 DISASSEMBLER-2 (JP)</item> <item ref="/apps/c1p/6502/jeffpar/assembler/ASSEMBLER-8K.json">6502 8K Assembler (JP)</item>
<item ref="/apps/c1p/6502/jeffpar/basicext/BASICEXT.json">6502 BASIC MODS (JP)</item> <item ref="/apps/c1p/6502/jeffpar/basicext/BASICEXT.json">6502 BASIC Extensions (JP)</item>
<item ref="/apps/c1p/6502/jeffpar/life/LIFE.json">6502 LIFE (JP)</item> <item ref="/apps/c1p/6502/jeffpar/life/LIFE.json">6502 Game of Life (JP)</item>
<item ref="/apps/c1p/6502/tests/bcd/bcd.json">6502 BCD TESTS</item> <item ref="/apps/c1p/6502/tests/bcd/bcd.json">6502 BCD Tests</item>
<item ref="/apps/c1p/6502/tests/vflag/vflag.json">6502 VFLAG TESTS</item> <item ref="/apps/c1p/6502/tests/vflag/vflag.json">6502 VFLAG Tests</item>
<item ref="/apps/c1p/BASIC/jeffpar/CHECKERS.BAS">CHECKERS (JP)</item> <item ref="/apps/c1p/BASIC/jeffpar/CHECKERS.BAS">CHECKERS (JP)</item>
<item ref="/apps/c1p/BASIC/jeffpar/HANGWOMAN.BAS">HANGWOMAN (JP)</item> <item ref="/apps/c1p/BASIC/jeffpar/HANGWOMAN.BAS">HANGWOMAN (JP)</item>
<item ref="/apps/c1p/BASIC/jeffpar/LIFE.BAS">LIFE (JP)</item> <item ref="/apps/c1p/BASIC/jeffpar/LIFE.BAS">LIFE (JP)</item>

View file

@ -53,42 +53,49 @@ function C1PSerialPort(parmsSerial)
this.flags.fPowered = false; this.flags.fPowered = false;
this.fDemo = parmsSerial['demo']; this.fDemo = parmsSerial['demo'];
this.STATUS_NONE = 0x00; this.reset(true);
this.STATUS_DATA = 0x01; // indicates data available
this.reset();
} }
Component.subclass(C1PSerialPort); Component.subclass(C1PSerialPort);
C1PSerialPort.STATUS_NONE = 0x00;
C1PSerialPort.STATUS_DATA = 0x01; // indicates data available
/*
* Values for autoLoad:
*
* 0: no auto-load active
* 1: BASIC command file auto-load in progress
* 2: 6502 HEX command file auto-load in progress
*/
C1PSerialPort.AUTOLOAD_NONE = 0;
C1PSerialPort.AUTOLOAD_BASIC = 1;
C1PSerialPort.AUTOLOAD_6502 = 2;
/** /**
* @this {C1PSerialPort} * @this {C1PSerialPort}
* @param {boolean} [fHard]
*/ */
C1PSerialPort.prototype.reset = function() C1PSerialPort.prototype.reset = function(fHard)
{ {
/* /*
* Because we reset the machine at the start of a 6502 HEX command file auto-load, * Because we reset the machine at the start of a 6502 HEX command file auto-load,
* we must avoid tossing the serial port's input buffer in that particular case (2). * we must avoid tossing the serial port's input buffer in that particular case (2).
*/ */
if (this.autoLoad != 2) { if (fHard || this.autoLoad != C1PSerialPort.AUTOLOAD_6502) {
this.bInput = 0;
this.cbInput = 0;
this.bInput = -1;
this.iInput = 0; this.iInput = 0;
this.sInput = "10 PRINT \"HELLO OSI #" + this.getMachineNum() + "\"\n"; this.sInput = "";
if (this.fDemo) {
this.sInput = "10 PRINT \"HELLO OSI #" + this.getMachineNum() + "\"\n";
}
// this.sOutput = new Array(0); // this.sOutput = new Array(0);
// this.iOutputNext = 0; // this.iOutputNext = 0;
/* this.fConvertLF = true;
* Values for autoLoad: this.autoLoad = C1PSerialPort.AUTOLOAD_NONE;
*
* 0: no auto-load active
* 1: BASIC command file auto-load in progress
* 2: 6502 HEX command file auto-load in progress
*/
this.autoLoad = 0;
} }
}; };
@ -224,7 +231,7 @@ C1PSerialPort.prototype.setPower = function(fOn, cmp)
*/ */
C1PSerialPort.prototype.startLoad = function() C1PSerialPort.prototype.startLoad = function()
{ {
this.autoLoad = 1; this.autoLoad = C1PSerialPort.AUTOLOAD_BASIC;
this.kbd.injectKeys("LOAD\n"); this.kbd.injectKeys("LOAD\n");
}; };
@ -241,9 +248,10 @@ C1PSerialPort.prototype.loadFile = function(sFileName, sFileData, nResponse)
return; return;
} }
this.autoLoad = 0;
this.iInput = 0; this.iInput = 0;
this.sInput = sFileData; this.sInput = sFileData;
this.fConvertLF = true;
this.autoLoad = C1PSerialPort.AUTOLOAD_NONE;
/* /*
* The following code adds support for loading "65V" files encoded as JSON, which is a cleaner * The following code adds support for loading "65V" files encoded as JSON, which is a cleaner
@ -252,6 +260,8 @@ C1PSerialPort.prototype.loadFile = function(sFileName, sFileData, nResponse)
* For example, my 6502 ASSEMBLER/DISASSEMBLER program starts with a conventional "65V" loading * For example, my 6502 ASSEMBLER/DISASSEMBLER program starts with a conventional "65V" loading
* sequence, which loads and launches a small program loader that loads the rest of the program * sequence, which loads and launches a small program loader that loads the rest of the program
* using a raw (1-to-1) binary format instead of the usual (3-to-1) HEX format used by "65V" files. * using a raw (1-to-1) binary format instead of the usual (3-to-1) HEX format used by "65V" files.
*
* The "rawness" of the binary format also necessitates disabling fConvertLF.
*/ */
if (str.endsWith(sFileName, ".json")) { if (str.endsWith(sFileName, ".json")) {
try { try {
@ -265,6 +275,7 @@ C1PSerialPort.prototype.loadFile = function(sFileName, sFileData, nResponse)
s += String.fromCharCode(ab[i]); s += String.fromCharCode(ab[i]);
} }
this.sInput = s; this.sInput = s;
this.fConvertLF = false;
} catch (e) { } catch (e) {
this.println("Error processing file \"" + sFileName + "\": " + e.message); this.println("Error processing file \"" + sFileName + "\": " + e.message);
return; return;
@ -289,15 +300,15 @@ C1PSerialPort.prototype.loadFile = function(sFileName, sFileData, nResponse)
* LOAD. * LOAD.
*/ */
if (this.sInput.charAt(0) != '.') { if (this.sInput.charAt(0) != '.') {
this.autoLoad = 1; this.autoLoad = C1PSerialPort.AUTOLOAD_BASIC;
this.kbd.injectKeys("NEW\nLOAD\n"); this.kbd.injectKeys("NEW\nLOAD\n");
} }
else { else {
/* /*
* Set autoLoad to 2 before the reset, so that when our reset() method is called, * Set autoLoad to AUTOLOAD_6502 before the reset, so that when our reset() method is called,
* we'll take care to preserve all the data we just loaded. * we'll take care to preserve all the data we just loaded.
*/ */
this.autoLoad = 2; this.autoLoad = C1PSerialPort.AUTOLOAD_6502;
/* /*
* Although the Keyboard allows us to inject any key, even the BREAK key, like so: * Although the Keyboard allows us to inject any key, even the BREAK key, like so:
* *
@ -372,23 +383,23 @@ C1PSerialPort.prototype.setByte = function(addr, addrFrom)
C1PSerialPort.prototype.advanceInput = function() C1PSerialPort.prototype.advanceInput = function()
{ {
if (this.sInput !== undefined) { if (this.sInput !== undefined) {
this.bInput = 0; this.bInput = -1;
this.cbInput = 0;
if (this.iInput < this.sInput.length) { if (this.iInput < this.sInput.length) {
var b = this.sInput.charCodeAt(this.iInput++) & 0xff; var b = this.sInput.charCodeAt(this.iInput++) & 0xff;
if (b == 0x0a) b = 0x0d; if (this.fConvertLF) {
if (b == 0x0a) b = 0x0d;
}
this.bInput = b; this.bInput = b;
this.cbInput = 1;
// if (DEBUG) this.log("advanceInput(" + str.toHexByte(b) + ")"); // if (DEBUG) this.log("advanceInput(" + str.toHexByte(b) + ")");
} }
else { else {
this.sInput = ""; this.sInput = "";
this.iInput = 0; this.iInput = 0;
if (DEBUG) this.log("advanceInput(): out of data"); if (DEBUG) this.log("advanceInput(): out of data");
if (this.autoLoad == 1 && this.kbd) { if (this.autoLoad == C1PSerialPort.AUTOLOAD_BASIC && this.kbd) {
this.kbd.injectKeys(" \nRUN\n"); this.kbd.injectKeys(" \nRUN\n");
} }
this.autoLoad = 0; this.autoLoad = C1PSerialPort.AUTOLOAD_NONE;
} }
this.updateMemory(); this.updateMemory();
} }
@ -405,13 +416,13 @@ C1PSerialPort.prototype.updateMemory = function()
* Update all the status (even) bytes * Update all the status (even) bytes
*/ */
for (offset = this.offPort+0; offset < this.offPortLimit; offset+=2) { for (offset = this.offPort+0; offset < this.offPortLimit; offset+=2) {
this.abMem[offset] = (this.cbInput? this.STATUS_DATA : this.STATUS_NONE); this.abMem[offset] = (this.bInput >= 0? C1PSerialPort.STATUS_DATA : C1PSerialPort.STATUS_NONE);
} }
/* /*
* Update all the data (odd) bytes * Update all the data (odd) bytes
*/ */
for (offset = this.offPort+1; offset < this.offPortLimit; offset+=2) { for (offset = this.offPort+1; offset < this.offPortLimit; offset+=2) {
this.abMem[offset] = (this.cbInput? this.bInput : 0); this.abMem[offset] = (this.bInput >= 0? this.bInput : 0);
} }
}; };