diff --git a/core/bin/boot.dbg b/core/bin/boot.dbg
new file mode 100644
index 0000000..98eb3d1
--- /dev/null
+++ b/core/bin/boot.dbg
@@ -0,0 +1,1462 @@
+
+
+ 0,KickAss.jar:/include/autoinclude.asm
+ 1,/opt/develop/stid/c64/woz64/libs/print.asm
+ 2,/opt/develop/stid/c64/woz64/devices/keyboard.asm
+ 3,/opt/develop/stid/c64/woz64/progs/woz_shell.asm
+ 4,/opt/develop/stid/c64/woz64/hardware/mc6502.asm
+ 5,/opt/develop/stid/c64/woz64/libs/memory.asm
+ 6,/opt/develop/stid/c64/woz64/hardware/ram.asm
+ 7,/opt/develop/stid/c64/woz64/hardware/sid.asm
+ 8,/opt/develop/stid/c64/woz64/hardware/cia.asm
+ 9,/opt/develop/stid/c64/woz64/core/boot.asm
+ 10,/opt/develop/stid/c64/woz64/libs/math.asm
+ 11,/opt/develop/stid/c64/woz64/libs/timers.asm
+ 12,/opt/develop/stid/c64/woz64/core/module.asm
+ 13,/opt/develop/stid/c64/woz64/core/system.asm
+ 14,/opt/develop/stid/c64/woz64/hardware/mem_map.asm
+ 15,/opt/develop/stid/c64/woz64/hardware/vic.asm
+ 16,/opt/develop/stid/c64/woz64/core/pseudo.asm
+ 17,/opt/develop/stid/c64/woz64/devices/video.asm
+
+
+
+
+ $003f,$003f,10,83,17,83,19
+ $0040,$0042,12,30,17,30,19
+ $0043,$0045,12,31,17,31,19
+ $0046,$0047,12,45,17,45,19
+ $0048,$004a,1,19,17,19,19
+ $004b,$004c,1,13,17,13,19
+ $004d,$004e,1,14,17,14,19
+ $004f,$0051,1,15,17,15,19
+ $0052,$0053,12,48,17,48,19
+ $0054,$0056,1,19,17,19,19
+ $0057,$0058,12,17,17,17,19
+ $0059,$005a,12,18,17,18,19
+ $005b,$005d,12,19,17,19,19
+ $005e,$0060,1,23,17,23,19
+ $0061,$0061,10,92,17,92,19
+ $0062,$0062,10,107,17,107,19
+ $0063,$0063,10,108,17,108,19
+ $0064,$0064,10,109,17,109,19
+ $0065,$0065,10,110,17,110,19
+ $0066,$0067,10,112,17,112,19
+ $0068,$0069,10,113,17,113,19
+ $006a,$006a,10,114,17,114,19
+ $006b,$006c,10,115,17,115,19
+ $006d,$006d,10,116,17,116,19
+ $006e,$006f,10,117,17,117,19
+ $0070,$0070,10,118,17,118,19
+ $0071,$0072,10,119,17,119,19
+ $0073,$0073,10,120,17,120,19
+ $0074,$0075,10,121,17,121,19
+ $0076,$0077,10,122,17,122,19
+ $0078,$0079,10,124,17,124,19
+ $007a,$007b,10,125,17,125,19
+ $007c,$007c,10,127,17,127,19
+ $007d,$007d,10,128,17,128,19
+ $007e,$007e,10,129,17,129,19
+ $007f,$007f,10,130,17,130,19
+ $0080,$0080,10,131,17,131,19
+
+
+ $0081,$0081,10,140,17,140,21
+ $0082,$0084,10,141,17,141,21
+ $0085,$0088,10,145,17,145,21
+ $0089,$0089,10,146,17,146,21
+
+
+ $008a,$008a,5,100,17,100,19
+ $008b,$008d,12,30,17,30,19
+ $008e,$0090,12,31,17,31,19
+ $0091,$0092,12,45,17,45,19
+ $0093,$0095,1,19,17,19,19
+ $0096,$0097,1,13,17,13,19
+ $0098,$0099,1,14,17,14,19
+ $009a,$009c,1,15,17,15,19
+ $009d,$009e,12,48,17,48,19
+ $009f,$00a1,1,19,17,19,19
+ $00a2,$00a3,12,17,17,17,19
+ $00a4,$00a5,12,18,17,18,19
+ $00a6,$00a8,12,19,17,19,19
+ $00a9,$00ab,1,23,17,23,19
+ $00ac,$00ac,5,109,17,109,19
+ $00ad,$00ae,16,66,17,66,19
+ $00af,$00af,16,67,17,67,19
+ $00b0,$00b0,16,68,17,68,19
+ $00b1,$00b1,16,69,17,69,19
+ $00b2,$00b2,16,70,17,70,19
+ $00b3,$00b3,16,71,17,71,19
+ $00b4,$00b5,16,72,17,72,19
+ $00b6,$00b6,5,127,17,127,19
+ $00b7,$00b8,5,128,17,128,19
+ $00b9,$00ba,5,129,17,129,19
+ $00bb,$00bc,5,130,17,130,19
+ $00bd,$00be,5,131,17,131,19
+ $00bf,$00c0,5,132,17,132,19
+ $00c1,$00c1,5,133,17,133,19
+ $00c2,$00c3,5,134,17,134,19
+ $00c4,$00c5,5,135,17,135,19
+ $00c6,$00c7,5,136,17,136,19
+ $00c8,$00c8,5,137,17,137,19
+ $00c9,$00ca,5,138,17,138,19
+ $00cb,$00cc,5,139,17,139,19
+ $00cd,$00ce,5,140,17,140,19
+ $00cf,$00d0,5,141,17,141,19
+ $00d1,$00d2,5,142,17,142,19
+ $00d3,$00d3,5,143,17,143,19
+ $00d4,$00d4,5,144,17,144,19
+ $00d5,$00d6,5,145,17,145,19
+ $00d7,$00d7,5,146,17,146,19
+ $00d8,$00d8,16,76,17,76,19
+ $00d9,$00d9,16,77,17,77,19
+ $00da,$00da,16,78,17,78,19
+ $00db,$00db,16,79,17,79,19
+ $00dc,$00dc,16,80,17,80,19
+ $00dd,$00dd,5,149,17,149,19
+ $00de,$00df,16,66,17,66,19
+ $00e0,$00e0,16,67,17,67,19
+ $00e1,$00e1,16,68,17,68,19
+ $00e2,$00e2,16,69,17,69,19
+ $00e3,$00e3,16,70,17,70,19
+ $00e4,$00e4,16,71,17,71,19
+ $00e5,$00e6,16,72,17,72,19
+ $00e7,$00e7,5,165,17,165,19
+ $00e8,$00e9,5,166,17,166,19
+ $00ea,$00eb,5,167,17,167,19
+ $00ec,$00ed,5,168,17,168,19
+ $00ee,$00ef,5,170,17,170,19
+ $00f0,$00f0,5,171,17,171,19
+ $00f1,$00f2,5,172,17,172,19
+ $00f3,$00f4,5,173,17,173,19
+ $00f5,$00f5,5,174,17,174,19
+ $00f6,$00f7,5,175,17,175,19
+ $00f8,$00f9,5,176,17,176,19
+ $00fa,$00fb,5,177,17,177,19
+ $00fc,$00fd,5,179,17,179,19
+ $00fe,$00fe,5,180,17,180,19
+ $00ff,$00ff,5,181,17,181,19
+ $0100,$0101,5,182,17,182,19
+ $0102,$0102,5,183,17,183,19
+ $0103,$0103,16,76,17,76,19
+ $0104,$0104,16,77,17,77,19
+ $0105,$0105,16,78,17,78,19
+ $0106,$0106,16,79,17,79,19
+ $0107,$0107,16,80,17,80,19
+ $0108,$0108,5,186,17,186,19
+ $0109,$010a,5,205,17,205,19
+ $010b,$010d,5,206,17,206,19
+
+
+ $010e,$010e,5,215,25,215,29
+ $010f,$0111,5,216,25,216,29
+ $0112,$0117,5,220,9,220,13
+ $0118,$0118,5,221,9,221,13
+
+
+ $0119,$011a,17,143,17,143,19
+ $011b,$011c,17,144,17,144,19
+ $011d,$011e,17,145,17,145,19
+ $011f,$0120,17,146,17,146,19
+ $0121,$0122,17,147,17,147,19
+ $0123,$0123,17,148,17,148,19
+ $0124,$0126,12,30,17,30,19
+ $0127,$0129,12,31,17,31,19
+ $012a,$012b,12,45,17,45,19
+ $012c,$012e,1,19,17,19,19
+ $012f,$0130,1,13,17,13,19
+ $0131,$0132,1,14,17,14,19
+ $0133,$0135,1,15,17,15,19
+ $0136,$0137,12,48,17,48,19
+ $0138,$013a,1,19,17,19,19
+ $013b,$013c,12,17,17,17,19
+ $013d,$013e,12,18,17,18,19
+ $013f,$0141,12,19,17,19,19
+ $0142,$0144,1,23,17,23,19
+ $0145,$0145,17,157,21,157,23
+ $0146,$0146,17,165,17,165,19
+ $0147,$0148,5,21,17,21,19
+ $0149,$014a,5,22,17,22,19
+ $014b,$014c,5,23,17,23,19
+ $014d,$014e,5,24,17,24,19
+ $014f,$0150,5,26,17,26,19
+ $0151,$0152,5,27,17,27,19
+ $0153,$0154,5,28,17,28,19
+ $0155,$0156,5,29,17,29,19
+ $0157,$0158,5,31,17,31,19
+ $0159,$015a,5,32,17,32,19
+ $015b,$015c,5,33,17,33,19
+ $015d,$015e,5,34,17,34,19
+ $015f,$0161,5,36,17,36,19
+ $0162,$0163,17,168,17,168,19
+ $0164,$0165,17,169,17,169,19
+ $0166,$0168,17,171,17,171,19
+ $0169,$0169,17,172,17,172,19
+ $016a,$016b,17,173,17,173,19
+ $016c,$016d,17,174,17,174,19
+ $016e,$016e,17,175,17,175,19
+ $016f,$016f,17,176,17,176,19
+ $0170,$0170,17,189,17,189,19
+ $0171,$0172,16,53,17,53,19
+ $0173,$0173,16,54,17,54,19
+ $0174,$0174,16,55,17,55,19
+ $0175,$0176,16,56,17,56,19
+ $0177,$0178,17,191,17,191,19
+ $0179,$017a,17,192,17,192,19
+ $017b,$017d,17,193,17,193,19
+ $017e,$017e,17,194,17,194,19
+ $017f,$0181,17,195,17,195,19
+ $0182,$0183,17,197,17,197,19
+ $0184,$0185,17,198,17,198,19
+ $0186,$0187,17,199,17,199,19
+ $0188,$0189,17,200,17,200,19
+ $018a,$018b,17,201,17,201,19
+ $018c,$018d,17,202,17,202,19
+ $018e,$018f,17,205,17,205,19
+ $0190,$0191,17,206,17,206,19
+ $0192,$0193,17,207,17,207,19
+ $0194,$0195,17,208,17,208,19
+ $0196,$0197,16,39,17,39,19
+ $0198,$0198,16,40,17,40,19
+ $0199,$0199,16,41,17,41,19
+ $019a,$019b,16,42,17,42,19
+ $019c,$019d,17,214,17,214,19
+ $019e,$019f,17,215,17,215,19
+ $01a0,$01a1,17,216,17,216,19
+ $01a2,$01a3,17,217,17,217,19
+ $01a4,$01a6,17,218,17,218,19
+ $01a7,$01a7,17,221,17,221,19
+ $01a8,$01a8,17,223,17,223,19
+ $01a9,$01aa,17,224,17,224,19
+ $01ab,$01ac,17,225,17,225,19
+ $01ad,$01ae,17,226,17,226,19
+ $01af,$01b0,17,227,17,227,19
+ $01b1,$01b2,17,228,17,228,19
+ $01b3,$01b4,17,229,17,229,19
+ $01b5,$01b6,17,231,17,231,19
+ $01b7,$01b8,17,232,17,232,19
+ $01b9,$01ba,17,233,17,233,19
+ $01bb,$01bd,17,234,17,234,19
+ $01be,$01bf,16,29,5,29,7
+ $01c0,$01c1,16,30,5,30,7
+ $01c2,$01c3,17,237,17,237,19
+ $01c4,$01c4,17,240,17,240,19
+ $01c5,$01c6,17,241,17,241,19
+ $01c7,$01c8,17,242,17,242,19
+ $01c9,$01ca,17,243,17,243,19
+ $01cb,$01cc,17,244,17,244,19
+ $01cd,$01ce,17,245,17,245,19
+ $01cf,$01cf,17,250,17,250,19
+ $01d0,$01d1,17,252,17,252,19
+ $01d2,$01d3,17,253,17,253,19
+ $01d4,$01d5,17,254,17,254,19
+ $01d6,$01d7,17,255,17,255,19
+ $01d8,$01d9,16,46,17,46,19
+ $01da,$01da,16,47,17,47,19
+ $01db,$01db,16,48,17,48,19
+ $01dc,$01dd,16,49,17,49,19
+ $01de,$01e0,17,257,17,257,19
+ $01e1,$01e2,17,260,17,260,19
+ $01e3,$01e4,16,46,17,46,19
+ $01e5,$01e5,16,47,17,47,19
+ $01e6,$01e6,16,48,17,48,19
+ $01e7,$01e8,16,49,17,49,19
+ $01e9,$01e9,17,262,17,262,19
+ $01ea,$01eb,17,263,17,263,19
+ $01ec,$01ed,16,60,17,60,19
+ $01ee,$01ee,16,61,17,61,19
+ $01ef,$01ef,16,62,17,62,19
+ $01f0,$01f1,16,63,17,63,19
+ $01f2,$01f2,17,267,17,267,19
+ $01f3,$01f3,17,268,17,268,19
+ $01f4,$01f4,17,277,25,277,27
+ $01f5,$01f6,17,278,25,278,27
+ $01f7,$01f8,17,279,25,279,27
+ $01f9,$01fa,17,280,25,280,27
+ $01fb,$01fc,17,281,25,281,27
+ $01fd,$01fe,17,282,25,282,27
+ $01ff,$0201,17,283,25,283,27
+ $0202,$0203,16,11,5,11,7
+ $0204,$0205,16,12,5,12,7
+ $0206,$0207,16,13,5,13,7
+ $0208,$020a,17,287,25,287,27
+ $020b,$020c,16,17,5,17,7
+ $020d,$020e,16,18,5,18,7
+ $020f,$0210,16,19,5,19,7
+ $0211,$0212,17,292,25,292,27
+ $0213,$0213,17,293,25,293,27
+ $0214,$0214,17,294,25,294,27
+
+
+ $0215,$0215,17,298,25,298,29
+ $0216,$0218,17,299,25,299,29
+ $0219,$021d,17,301,9,301,13
+ $021e,$021e,17,302,9,302,13
+
+
+ $021f,$021f,1,41,17,41,19
+ $0220,$0222,12,30,17,30,19
+ $0223,$0225,12,31,17,31,19
+ $0226,$0227,12,45,17,45,19
+ $0228,$022a,1,19,17,19,19
+ $022b,$022c,1,13,17,13,19
+ $022d,$022e,1,14,17,14,19
+ $022f,$0231,1,15,17,15,19
+ $0232,$0233,12,48,17,48,19
+ $0234,$0236,1,19,17,19,19
+ $0237,$0238,12,17,17,17,19
+ $0239,$023a,12,18,17,18,19
+ $023b,$023d,12,19,17,19,19
+ $023e,$0240,1,23,17,23,19
+ $0241,$0241,1,50,17,50,19
+ $0242,$0243,16,66,17,66,19
+ $0244,$0244,16,67,17,67,19
+ $0245,$0245,16,68,17,68,19
+ $0246,$0246,16,69,17,69,19
+ $0247,$0247,16,70,17,70,19
+ $0248,$0248,16,71,17,71,19
+ $0249,$024a,16,72,17,72,19
+ $024b,$024d,1,62,17,62,19
+ $024e,$0250,1,63,17,63,19
+ $0251,$0251,16,76,17,76,19
+ $0252,$0252,16,77,17,77,19
+ $0253,$0253,16,78,17,78,19
+ $0254,$0254,16,79,17,79,19
+ $0255,$0255,16,80,17,80,19
+ $0256,$0256,1,65,17,65,19
+ $0257,$0258,1,77,17,77,19
+ $0259,$025a,1,78,17,78,19
+ $025b,$025c,1,79,17,79,19
+ $025d,$025e,1,81,17,81,19
+ $025f,$0260,1,82,17,82,19
+ $0261,$0262,1,83,17,83,19
+ $0263,$0265,1,84,17,84,19
+ $0266,$0268,1,85,17,85,19
+ $0269,$0269,1,87,17,87,19
+ $026a,$026a,1,102,17,102,19
+ $026b,$026d,1,103,17,103,19
+ $026e,$026e,1,104,17,104,19
+ $026f,$026f,1,105,17,105,19
+ $0270,$0270,1,106,17,106,19
+ $0271,$0271,1,107,17,107,19
+ $0272,$0272,1,108,17,108,19
+ $0273,$0273,1,109,17,109,19
+ $0274,$0275,1,111,12,111,14
+ $0276,$0277,1,112,17,112,19
+ $0278,$0279,1,113,17,113,19
+ $027a,$027b,1,114,17,114,19
+ $027c,$027d,1,116,12,116,14
+ $027e,$027e,1,117,17,117,19
+ $027f,$0280,1,132,17,132,19
+ $0281,$0282,1,133,17,133,19
+ $0283,$0283,1,134,17,134,19
+ $0284,$0285,1,135,17,135,19
+ $0286,$0288,1,136,17,136,19
+ $0289,$028a,1,139,17,139,19
+ $028b,$028c,1,140,17,140,19
+ $028d,$028f,1,141,17,141,19
+ $0290,$0291,1,144,17,144,19
+ $0292,$0293,1,145,17,145,19
+ $0294,$0294,1,146,17,146,19
+ $0295,$0296,1,147,17,147,19
+ $0297,$0299,1,148,17,148,19
+ $029a,$029b,1,151,17,151,19
+ $029c,$029d,1,152,17,152,19
+ $029e,$029e,1,153,17,153,19
+ $029f,$02a0,1,154,17,154,19
+ $02a1,$02a3,1,155,17,155,19
+ $02a4,$02a5,1,158,17,158,19
+ $02a6,$02a7,1,159,17,159,19
+ $02a8,$02a8,1,160,17,160,19
+ $02a9,$02aa,1,161,17,161,19
+ $02ab,$02ad,1,162,17,162,19
+ $02ae,$02af,1,165,17,165,19
+ $02b0,$02b1,1,166,17,166,19
+ $02b2,$02b2,1,167,17,167,19
+ $02b3,$02b4,1,168,17,168,19
+ $02b5,$02b7,1,169,17,169,19
+ $02b8,$02b9,1,173,17,173,19
+ $02ba,$02bb,1,174,17,174,19
+ $02bc,$02bc,1,175,17,175,19
+ $02bd,$02be,1,176,17,176,19
+ $02bf,$02c1,1,177,17,177,19
+ $02c2,$02c3,1,180,17,180,19
+ $02c4,$02c4,1,182,17,182,19
+
+
+ $02c5,$02c5,1,191,17,191,21
+ $02c6,$02c8,1,192,17,192,21
+ $02c9,$02cd,1,196,17,196,21
+ $02ce,$02ce,1,197,17,197,21
+
+
+ $02cf,$02cf,12,82,17,82,19
+ $02d0,$02d2,12,30,17,30,19
+ $02d3,$02d5,12,31,17,31,19
+ $02d6,$02d7,12,45,17,45,19
+ $02d8,$02da,1,19,17,19,19
+ $02db,$02dc,1,13,17,13,19
+ $02dd,$02de,1,14,17,14,19
+ $02df,$02e1,1,15,17,15,19
+ $02e2,$02e3,12,48,17,48,19
+ $02e4,$02e6,1,19,17,19,19
+ $02e7,$02e8,12,17,17,17,19
+ $02e9,$02ea,12,18,17,18,19
+ $02eb,$02ed,12,19,17,19,19
+ $02ee,$02f0,1,23,17,23,19
+ $02f1,$02f1,12,91,17,91,19
+ $02f2,$02f3,12,103,17,103,19
+ $02f4,$02f5,12,104,17,104,19
+ $02f6,$02f7,12,105,17,105,19
+ $02f8,$02fa,12,106,17,106,19
+ $02fb,$02fc,12,107,17,107,19
+ $02fd,$02ff,1,19,17,19,19
+ $0300,$0302,12,109,17,109,19
+ $0303,$0304,12,110,17,110,19
+ $0305,$0307,1,19,17,19,19
+ $0308,$030a,12,112,17,112,19
+ $030b,$030b,12,113,17,113,19
+ $030c,$030d,12,115,17,115,19
+ $030e,$030e,12,116,17,116,19
+ $030f,$0310,12,117,17,117,19
+ $0311,$0313,1,19,17,19,19
+ $0314,$0314,12,119,17,119,19
+ $0315,$0315,12,120,17,120,19
+ $0316,$0317,12,131,17,131,19
+ $0318,$0319,12,132,17,132,19
+ $031a,$031b,1,13,17,13,19
+ $031c,$031d,1,14,17,14,19
+ $031e,$0320,1,15,17,15,19
+ $0321,$0321,12,134,17,134,19
+ $0322,$0323,12,136,17,136,19
+ $0324,$0325,12,137,17,137,19
+ $0326,$0327,1,13,17,13,19
+ $0328,$0329,1,14,17,14,19
+ $032a,$032c,1,15,17,15,19
+ $032d,$032d,12,139,17,139,19
+ $032e,$032f,12,141,17,141,19
+ $0330,$0331,12,142,17,142,19
+ $0332,$0333,1,13,17,13,19
+ $0334,$0335,1,14,17,14,19
+ $0336,$0338,1,15,17,15,19
+ $0339,$0339,12,144,17,144,19
+ $033a,$033b,12,146,17,146,19
+ $033c,$033d,12,147,17,147,19
+ $033e,$033f,1,13,17,13,19
+ $0340,$0341,1,14,17,14,19
+ $0342,$0344,1,15,17,15,19
+ $0345,$0345,12,149,17,149,19
+ $0346,$0347,12,151,17,151,19
+ $0348,$0349,12,152,17,152,19
+ $034a,$034b,1,13,17,13,19
+ $034c,$034d,1,14,17,14,19
+ $034e,$0350,1,15,17,15,19
+ $0351,$0351,12,155,17,155,19
+
+
+ $0352,$0352,12,164,17,164,21
+ $0353,$0355,12,165,17,165,21
+ $0356,$035b,12,169,17,169,21
+ $035c,$035c,12,170,17,170,21
+ $035d,$0360,12,174,17,174,21
+ $0361,$0361,12,175,17,175,21
+ $0362,$0365,12,177,17,177,21
+ $0366,$0366,12,178,17,178,21
+ $0367,$0369,12,180,17,180,21
+ $036a,$036a,12,181,17,181,21
+ $036b,$036e,12,183,17,183,21
+ $036f,$036f,12,184,17,184,21
+ $0370,$0375,12,187,17,187,21
+ $0376,$0376,12,188,17,188,21
+
+
+ $0377,$0377,16,95,17,95,19
+ $0378,$037a,12,30,17,30,19
+ $037b,$037d,12,31,17,31,19
+ $037e,$037f,12,45,17,45,19
+ $0380,$0382,1,19,17,19,19
+ $0383,$0384,1,13,17,13,19
+ $0385,$0386,1,14,17,14,19
+ $0387,$0389,1,15,17,15,19
+ $038a,$038b,12,48,17,48,19
+ $038c,$038e,1,19,17,19,19
+ $038f,$0390,12,17,17,17,19
+ $0391,$0392,12,18,17,18,19
+ $0393,$0395,12,19,17,19,19
+ $0396,$0398,1,23,17,23,19
+ $0399,$0399,16,104,17,104,19
+
+
+ $039a,$039a,16,113,17,113,21
+ $039b,$039d,16,114,17,114,21
+ $039e,$03a3,16,118,17,118,21
+ $03a4,$03a4,16,119,17,119,21
+
+
+ $03a5,$03a6,2,36,17,36,19
+ $03a7,$03a8,2,37,17,37,19
+ $03a9,$03aa,2,38,17,38,19
+ $03ab,$03ac,2,40,17,40,19
+ $03ad,$03ae,2,41,17,41,19
+ $03af,$03b0,2,43,17,43,19
+ $03b1,$03b2,2,44,17,44,19
+ $03b3,$03b4,2,46,17,46,19
+ $03b5,$03b6,2,47,17,47,19
+ $03b7,$03b8,2,48,17,48,19
+ $03b9,$03ba,2,50,17,50,19
+ $03bb,$03bc,2,52,17,52,19
+ $03bd,$03be,2,53,17,53,19
+ $03bf,$03c0,5,21,17,21,19
+ $03c1,$03c2,5,22,17,22,19
+ $03c3,$03c4,5,23,17,23,19
+ $03c5,$03c6,5,24,17,24,19
+ $03c7,$03c8,5,26,17,26,19
+ $03c9,$03ca,5,27,17,27,19
+ $03cb,$03cc,5,28,17,28,19
+ $03cd,$03ce,5,29,17,29,19
+ $03cf,$03d0,5,31,17,31,19
+ $03d1,$03d2,5,32,17,32,19
+ $03d3,$03d4,5,33,17,33,19
+ $03d5,$03d6,5,34,17,34,19
+ $03d7,$03d9,5,36,17,36,19
+ $03da,$03da,2,57,17,57,19
+ $03db,$03dc,2,69,17,69,19
+ $03dd,$03df,2,71,17,71,19
+ $03e0,$03e1,2,72,17,72,19
+ $03e2,$03e4,2,73,17,73,19
+ $03e5,$03e7,2,74,17,74,19
+ $03e8,$03e9,2,75,17,75,19
+ $03ea,$03ea,2,76,17,76,19
+ $03eb,$03ed,12,30,17,30,19
+ $03ee,$03f0,12,31,17,31,19
+ $03f1,$03f2,12,45,17,45,19
+ $03f3,$03f5,1,19,17,19,19
+ $03f6,$03f7,1,13,17,13,19
+ $03f8,$03f9,1,14,17,14,19
+ $03fa,$03fc,1,15,17,15,19
+ $03fd,$03fe,12,48,17,48,19
+ $03ff,$0401,1,19,17,19,19
+ $0402,$0403,12,17,17,17,19
+ $0404,$0405,12,18,17,18,19
+ $0406,$0408,12,19,17,19,19
+ $0409,$040b,1,23,17,23,19
+ $040c,$040c,2,85,17,85,19
+ $040d,$0414,2,93,9,93,13
+ $0415,$041c,2,97,9,97,13
+ $041d,$0424,2,98,9,98,13
+ $0425,$042c,2,99,9,99,13
+ $042d,$0434,2,100,9,100,13
+ $0435,$043c,2,101,9,101,13
+ $043d,$0444,2,102,9,102,13
+ $0445,$044c,2,103,9,103,13
+ $044d,$0454,2,104,9,104,13
+ $0455,$0455,2,105,9,105,13
+ $0456,$045d,2,109,9,109,13
+ $045e,$0465,2,110,9,110,13
+ $0466,$046d,2,111,9,111,13
+ $046e,$0475,2,112,9,112,13
+ $0476,$047d,2,113,9,113,13
+ $047e,$0485,2,114,9,114,13
+ $0486,$048d,2,115,9,115,13
+ $048e,$0495,2,116,9,116,13
+ $0496,$0496,2,117,9,117,13
+ $0497,$049e,2,121,9,121,13
+ $049f,$04a6,2,122,9,122,13
+ $04a7,$04ae,2,123,9,123,13
+ $04af,$04b6,2,124,9,124,13
+ $04b7,$04be,2,125,9,125,13
+ $04bf,$04c6,2,126,9,126,13
+ $04c7,$04ce,2,127,9,127,13
+ $04cf,$04d6,2,128,9,128,13
+ $04d7,$04d7,2,129,9,129,13
+ $04d8,$04df,2,133,9,133,13
+ $04e0,$04e7,2,134,9,134,13
+ $04e8,$04ef,2,135,9,135,13
+ $04f0,$04f7,2,136,9,136,13
+ $04f8,$04ff,2,137,9,137,13
+ $0500,$0507,2,138,9,138,13
+ $0508,$050f,2,139,9,139,13
+ $0510,$0517,2,140,9,140,13
+ $0518,$0518,2,141,9,141,13
+
+
+ $0519,$051a,2,172,17,172,19
+ $051b,$051d,2,173,17,173,19
+ $051e,$051f,2,174,17,174,19
+ $0520,$0522,2,175,17,175,19
+ $0523,$0524,2,178,17,178,19
+ $0525,$0526,2,179,17,179,19
+ $0527,$0528,2,181,17,181,19
+ $0529,$052a,2,182,17,182,19
+ $052b,$052d,2,184,17,184,19
+ $052e,$0530,2,185,17,185,19
+ $0531,$0532,2,186,17,186,19
+ $0533,$0534,2,187,17,187,19
+ $0535,$0536,2,189,17,189,19
+ $0537,$0538,2,191,17,191,19
+ $0539,$053a,2,192,17,192,19
+ $053b,$053c,2,194,17,194,19
+ $053d,$053f,2,195,17,195,19
+ $0540,$0541,2,197,17,197,19
+ $0542,$0544,2,199,17,199,19
+ $0545,$0547,2,202,17,202,19
+ $0548,$054a,2,203,17,203,19
+ $054b,$054c,2,204,17,204,19
+ $054d,$054e,2,206,17,206,19
+ $054f,$054f,2,208,17,208,19
+ $0550,$0551,2,209,17,209,19
+ $0552,$0554,2,210,17,210,19
+ $0555,$0557,2,212,17,212,19
+ $0558,$0559,2,215,17,215,19
+ $055a,$055b,2,216,17,216,19
+ $055c,$055d,2,218,17,218,19
+ $055e,$055f,2,219,17,219,19
+ $0560,$0561,2,222,17,222,19
+ $0562,$0563,2,223,17,223,19
+ $0564,$0565,2,224,17,224,19
+ $0566,$0567,2,227,17,227,19
+ $0568,$0569,2,230,17,230,19
+ $056a,$056a,2,233,17,233,19
+ $056b,$056b,2,234,17,234,19
+ $056c,$056d,2,235,17,235,19
+ $056e,$056e,2,237,17,237,19
+ $056f,$0571,2,238,17,238,19
+ $0572,$0573,2,239,17,239,19
+ $0574,$0575,2,240,17,240,19
+ $0576,$0578,2,242,17,242,19
+ $0579,$057a,2,246,17,246,19
+ $057b,$057d,2,248,17,248,19
+ $057e,$057e,2,249,17,249,19
+ $057f,$0580,2,250,17,250,19
+ $0581,$0582,2,251,17,251,19
+ $0583,$0584,2,253,17,253,19
+ $0585,$0586,2,254,17,254,19
+ $0587,$0588,2,255,17,255,19
+ $0589,$058a,2,258,17,258,19
+ $058b,$058c,2,259,17,259,19
+ $058d,$058e,2,260,17,260,19
+ $058f,$0590,2,261,17,261,19
+ $0591,$0592,2,262,17,262,19
+ $0593,$0594,2,265,17,265,19
+ $0595,$0596,2,266,17,266,19
+ $0597,$0598,2,268,17,268,19
+ $0599,$059a,2,269,17,269,19
+ $059b,$059c,2,270,17,270,19
+ $059d,$059d,2,271,17,271,19
+ $059e,$059f,2,272,17,272,19
+ $05a0,$05a1,2,276,17,276,19
+ $05a2,$05a3,2,277,17,277,19
+ $05a4,$05a5,2,278,17,278,19
+ $05a6,$05a7,2,279,17,279,19
+ $05a8,$05a9,2,281,17,281,19
+ $05aa,$05ab,2,282,17,282,19
+ $05ac,$05ac,2,283,17,283,19
+ $05ad,$05ae,2,284,17,284,19
+ $05af,$05b0,2,285,17,285,19
+ $05b1,$05b2,2,286,17,286,19
+ $05b3,$05b4,2,288,17,288,19
+ $05b5,$05b5,2,289,17,289,19
+ $05b6,$05b7,2,290,17,290,19
+ $05b8,$05b9,2,293,17,293,19
+ $05ba,$05bc,2,294,17,294,19
+ $05bd,$05bd,2,295,17,295,19
+ $05be,$05bf,2,298,17,298,19
+ $05c0,$05c1,2,299,17,299,19
+ $05c2,$05c3,2,300,17,300,19
+ $05c4,$05c5,2,301,17,301,19
+ $05c6,$05c7,2,302,17,302,19
+ $05c8,$05c8,2,305,17,305,19
+ $05c9,$05ca,2,306,17,306,19
+ $05cb,$05cc,2,307,17,307,19
+ $05cd,$05ce,2,308,17,308,19
+ $05cf,$05cf,2,309,17,309,19
+ $05d0,$05d2,2,310,17,310,19
+ $05d3,$05d5,2,311,17,311,19
+ $05d6,$05d8,2,312,17,312,19
+ $05d9,$05db,2,313,17,313,19
+ $05dc,$05de,2,314,17,314,19
+ $05df,$05e0,2,327,17,327,19
+ $05e1,$05e2,2,328,17,328,19
+ $05e3,$05e4,2,331,17,331,19
+ $05e5,$05e5,2,332,17,332,19
+ $05e6,$05e6,2,333,17,333,19
+ $05e7,$05e8,2,336,17,336,19
+ $05e9,$05ea,2,337,17,337,19
+ $05eb,$05ec,2,339,17,339,19
+ $05ed,$05ee,2,340,17,340,19
+ $05ef,$05ef,2,341,17,341,19
+ $05f0,$05f1,2,342,17,342,19
+ $05f2,$05f3,2,343,17,343,19
+ $05f4,$05f5,2,344,17,344,19
+ $05f6,$05f6,2,345,17,345,19
+ $05f7,$05f7,2,346,17,346,19
+ $05f8,$05f8,2,347,17,347,19
+
+
+ $05f9,$05f9,2,360,17,360,21
+ $05fa,$05fc,2,361,17,361,21
+ $05fd,$0604,2,365,17,365,21
+ $0605,$0605,2,366,17,366,21
+
+
+ $0606,$0606,11,24,17,24,19
+ $0607,$0609,12,30,17,30,19
+ $060a,$060c,12,31,17,31,19
+ $060d,$060e,12,45,17,45,19
+ $060f,$0611,1,19,17,19,19
+ $0612,$0613,1,13,17,13,19
+ $0614,$0615,1,14,17,14,19
+ $0616,$0618,1,15,17,15,19
+ $0619,$061a,12,48,17,48,19
+ $061b,$061d,1,19,17,19,19
+ $061e,$061f,12,17,17,17,19
+ $0620,$0621,12,18,17,18,19
+ $0622,$0624,12,19,17,19,19
+ $0625,$0627,1,23,17,23,19
+ $0628,$0628,11,33,17,33,19
+ $0629,$0629,11,48,17,48,19
+ $062a,$062b,11,49,17,49,19
+ $062c,$062d,11,50,17,50,19
+ $062e,$062f,11,51,17,51,19
+ $0630,$0632,11,52,17,52,19
+ $0633,$0634,11,53,17,53,19
+ $0635,$0636,11,54,17,54,19
+ $0637,$0638,11,55,17,55,19
+ $0639,$063a,11,56,17,56,19
+ $063b,$063c,11,57,17,57,19
+ $063d,$063f,11,58,17,58,19
+ $0640,$0642,11,61,17,61,19
+ $0643,$0645,11,62,17,62,19
+ $0646,$0647,11,63,17,63,19
+ $0648,$064a,11,64,17,64,19
+ $064b,$064b,11,66,17,66,19
+ $064c,$064c,11,67,17,67,19
+
+
+ $064d,$064d,11,76,17,76,21
+ $064e,$0650,11,77,17,77,21
+ $0651,$0656,11,81,17,81,21
+ $0657,$0657,11,82,17,82,21
+
+
+ $0658,$0659,15,21,17,21,19
+ $065a,$065c,15,23,17,23,19
+ $065d,$065f,15,24,17,24,19
+ $0660,$0660,15,25,17,25,19
+ $0661,$0662,15,26,17,26,19
+ $0663,$0663,15,27,17,27,19
+
+
+ $0664,$066b,15,33,5,33,9
+ $066c,$0673,15,34,5,34,9
+ $0674,$067b,15,35,5,35,9
+ $067c,$0683,15,36,5,36,9
+ $0684,$068b,15,37,5,37,9
+ $068c,$0692,15,38,5,38,9
+
+
+ $0693,$0694,3,37,17,37,19
+ $0695,$0696,3,38,17,38,19
+ $0697,$0697,3,39,17,39,19
+ $0698,$0699,1,13,17,13,19
+ $069a,$069b,1,14,17,14,19
+ $069c,$069e,1,15,17,15,19
+ $069f,$06a0,1,13,17,13,19
+ $06a1,$06a2,1,14,17,14,19
+ $06a3,$06a5,1,15,17,15,19
+ $06a6,$06a7,1,13,17,13,19
+ $06a8,$06a9,1,14,17,14,19
+ $06aa,$06ac,1,15,17,15,19
+ $06ad,$06af,3,48,17,48,19
+ $06b0,$06b0,3,52,17,52,19
+ $06b1,$06b2,3,53,17,53,19
+ $06b3,$06b5,3,54,17,54,19
+ $06b6,$06b7,3,56,17,56,19
+ $06b8,$06b9,3,57,17,57,19
+ $06ba,$06bc,3,59,17,59,19
+ $06bd,$06bf,3,60,17,60,19
+ $06c0,$06c1,3,62,17,62,19
+ $06c2,$06c4,3,63,17,63,19
+ $06c5,$06c7,3,65,17,65,19
+ $06c8,$06c9,3,66,17,66,19
+ $06ca,$06cc,3,67,17,67,19
+ $06cd,$06cd,3,69,17,69,19
+ $06ce,$06ce,3,71,17,71,19
+ $06cf,$06d1,3,74,17,74,19
+ $06d2,$06d2,3,78,17,78,19
+ $06d3,$06d3,3,79,17,79,19
+ $06d4,$06d4,3,80,17,80,19
+ $06d5,$06d5,3,81,17,81,19
+ $06d6,$06d6,3,82,17,82,19
+ $06d7,$06d7,3,83,17,83,19
+ $06d8,$06da,3,91,17,91,19
+ $06db,$06dc,3,93,17,93,19
+ $06dd,$06de,3,94,17,94,19
+ $06df,$06e0,3,96,17,96,19
+ $06e1,$06e2,3,97,17,97,19
+ $06e3,$06e5,3,99,17,99,19
+ $06e6,$06e7,3,100,17,100,19
+ $06e8,$06e9,3,101,17,101,19
+ $06ea,$06ec,1,19,17,19,19
+ $06ed,$06ef,3,103,17,103,19
+ $06f0,$06f2,3,105,17,105,19
+ $06f3,$06f5,1,19,17,19,19
+ $06f6,$06f8,3,107,17,107,19
+ $06f9,$06fb,3,110,17,110,19
+ $06fc,$06fe,3,111,17,111,19
+ $06ff,$0701,3,112,17,112,19
+ $0702,$0704,3,113,17,113,19
+ $0705,$0707,3,114,17,114,19
+ $0708,$070a,3,115,17,115,19
+ $070b,$070d,12,30,17,30,19
+ $070e,$0710,12,31,17,31,19
+ $0711,$0712,12,45,17,45,19
+ $0713,$0715,1,19,17,19,19
+ $0716,$0717,1,13,17,13,19
+ $0718,$0719,1,14,17,14,19
+ $071a,$071c,1,15,17,15,19
+ $071d,$071e,12,48,17,48,19
+ $071f,$0721,1,19,17,19,19
+ $0722,$0723,12,17,17,17,19
+ $0724,$0725,12,18,17,18,19
+ $0726,$0728,12,19,17,19,19
+ $0729,$072b,1,23,17,23,19
+ $072c,$072c,3,120,17,120,19
+ $072d,$072e,3,124,17,124,19
+ $072f,$072f,3,125,17,125,19
+ $0730,$0731,3,126,17,126,19
+ $0732,$0733,3,127,17,127,19
+ $0734,$0735,3,128,17,128,19
+ $0736,$0738,3,129,17,129,19
+ $0739,$0739,3,131,17,131,19
+ $073a,$073b,3,135,17,135,19
+ $073c,$073d,3,136,17,136,19
+ $073e,$073f,3,137,17,137,19
+ $0740,$0740,3,138,17,138,19
+ $0741,$0742,3,139,17,139,19
+ $0743,$0743,3,141,17,141,19
+ $0744,$0746,3,145,17,145,19
+ $0747,$0748,3,146,17,146,19
+ $0749,$074a,3,147,17,147,19
+ $074b,$074d,3,148,17,148,19
+ $074e,$074f,3,154,17,154,19
+ $0750,$0752,3,156,17,156,19
+ $0753,$0754,3,158,17,158,19
+ $0755,$0756,3,159,17,159,19
+ $0757,$0758,3,161,17,161,19
+ $0759,$075a,3,162,17,162,19
+ $075b,$075c,3,164,17,164,19
+ $075d,$075e,3,165,17,165,19
+ $075f,$0760,3,168,17,168,19
+ $0761,$0762,3,169,17,169,19
+ $0763,$0763,3,172,17,172,19
+ $0764,$0765,1,13,17,13,19
+ $0766,$0767,1,14,17,14,19
+ $0768,$076a,1,15,17,15,19
+ $076b,$076d,3,176,17,176,19
+ $076e,$0770,3,178,17,178,19
+ $0771,$0773,3,181,17,181,19
+ $0774,$0776,3,182,17,182,19
+ $0777,$0778,3,186,25,186,27
+ $0779,$0779,3,188,25,188,27
+ $077a,$077c,3,189,25,189,27
+ $077d,$077f,3,190,25,190,27
+ $0780,$0782,3,191,25,191,27
+ $0783,$0783,3,192,25,192,27
+ $0784,$0785,3,193,25,193,27
+ $0786,$0787,17,23,17,23,19
+ $0788,$0789,17,24,17,24,19
+ $078a,$078c,17,26,17,26,19
+ $078d,$078f,17,27,17,27,19
+ $0790,$0792,17,28,17,28,19
+ $0793,$0795,17,29,17,29,19
+ $0796,$0796,17,30,17,30,19
+ $0797,$0798,17,31,17,31,19
+ $0799,$079b,3,196,25,196,27
+ $079c,$079d,3,199,25,199,27
+ $079e,$07a0,3,201,25,201,27
+ $07a1,$07a3,3,202,25,202,27
+ $07a4,$07a6,3,203,25,203,27
+ $07a7,$07a9,3,204,25,204,27
+ $07aa,$07aa,3,205,25,205,27
+ $07ab,$07ac,3,206,25,206,27
+ $07ad,$07ad,3,207,25,207,27
+ $07ae,$07af,3,211,25,211,27
+ $07b0,$07b2,3,213,25,213,27
+ $07b3,$07b5,3,214,25,214,27
+ $07b6,$07b8,3,215,25,215,27
+ $07b9,$07bb,3,216,25,216,27
+ $07bc,$07bc,3,217,25,217,27
+ $07bd,$07be,3,218,25,218,27
+ $07bf,$07bf,3,219,25,219,27
+ $07c0,$07c1,3,227,17,227,19
+ $07c2,$07c3,3,228,17,228,19
+ $07c4,$07c4,3,229,17,229,19
+ $07c5,$07c5,3,231,17,231,19
+ $07c6,$07c7,3,233,17,233,19
+ $07c8,$07c9,3,234,17,234,19
+ $07ca,$07cb,3,235,17,235,19
+ $07cc,$07cd,3,237,17,237,19
+ $07ce,$07ce,3,239,17,239,19
+ $07cf,$07d1,3,242,17,242,19
+ $07d2,$07d3,3,243,17,243,19
+ $07d4,$07d5,3,244,17,244,19
+ $07d6,$07d6,3,245,17,245,19
+ $07d7,$07d8,3,247,17,247,19
+ $07d9,$07da,3,248,17,248,19
+ $07db,$07dc,3,249,17,249,19
+ $07dd,$07de,3,250,17,250,19
+ $07df,$07e0,3,251,17,251,19
+ $07e1,$07e2,3,252,17,252,19
+ $07e3,$07e4,3,253,17,253,19
+ $07e5,$07e6,3,254,17,254,19
+ $07e7,$07e8,3,255,17,255,19
+ $07e9,$07ea,3,256,17,256,19
+ $07eb,$07ed,3,261,17,261,19
+ $07ee,$07ef,3,262,17,262,19
+ $07f0,$07f1,3,263,17,263,19
+ $07f2,$07f3,3,264,17,264,19
+ $07f4,$07f5,3,265,17,265,19
+ $07f6,$07f7,3,266,17,266,19
+ $07f8,$07f9,3,267,17,267,19
+ $07fa,$07fa,3,270,17,270,19
+ $07fb,$07fb,3,271,17,271,19
+ $07fc,$07fc,3,272,17,272,19
+ $07fd,$07fd,3,273,17,273,19
+ $07fe,$07ff,3,275,17,275,19
+ $0800,$0800,3,277,17,277,19
+ $0801,$0802,3,278,17,278,19
+ $0803,$0804,3,279,17,279,19
+ $0805,$0805,3,280,17,280,19
+ $0806,$0807,3,281,17,281,19
+ $0808,$0808,3,282,17,282,19
+ $0809,$080a,3,283,17,283,19
+ $080b,$080c,3,285,17,285,19
+ $080d,$080e,3,286,17,286,19
+ $080f,$080f,3,287,17,287,19
+ $0810,$0811,3,289,17,289,19
+ $0812,$0813,3,290,17,290,19
+ $0814,$0815,3,294,17,294,19
+ $0816,$0817,3,295,17,295,19
+ $0818,$0819,3,296,17,296,19
+ $081a,$081b,3,297,17,297,19
+ $081c,$081d,3,298,17,298,19
+ $081e,$0820,3,300,17,300,19
+ $0821,$0823,3,306,17,306,19
+ $0824,$0825,3,313,17,313,19
+ $0826,$0827,3,317,17,317,19
+ $0828,$0829,3,319,17,319,19
+ $082a,$082b,3,320,17,320,19
+ $082c,$082d,3,321,17,321,19
+ $082e,$082e,3,322,17,322,19
+ $082f,$0830,3,323,17,323,19
+ $0831,$0832,3,328,17,328,19
+ $0833,$0834,3,329,17,329,19
+ $0835,$0837,1,19,17,19,19
+ $0838,$0839,3,331,17,331,19
+ $083a,$083c,3,332,17,332,19
+ $083d,$083e,3,333,17,333,19
+ $083f,$0841,3,334,17,334,19
+ $0842,$0843,3,335,17,335,19
+ $0844,$0846,1,19,17,19,19
+ $0847,$0848,3,338,17,338,19
+ $0849,$084b,1,19,17,19,19
+ $084c,$084d,3,340,17,340,19
+ $084e,$0850,3,341,17,341,19
+ $0851,$0852,3,343,17,343,19
+ $0853,$0854,3,344,17,344,19
+ $0855,$0856,3,345,17,345,19
+ $0857,$0858,3,346,17,346,19
+ $0859,$085a,3,347,17,347,19
+ $085b,$085c,3,348,17,348,19
+ $085d,$085e,3,350,17,350,19
+ $085f,$0860,3,351,17,351,19
+ $0861,$0862,3,352,17,352,19
+ $0863,$0864,3,355,17,355,19
+ $0865,$0866,3,356,17,356,19
+ $0867,$0868,3,357,17,357,19
+ $0869,$0869,3,364,17,364,19
+ $086a,$086a,3,365,17,365,19
+ $086b,$086b,3,366,17,366,19
+ $086c,$086c,3,367,17,367,19
+ $086d,$086d,3,368,17,368,19
+ $086e,$0870,3,369,17,369,19
+ $0871,$0871,3,370,17,370,19
+ $0872,$0873,3,378,17,378,19
+ $0874,$0875,3,379,17,379,19
+ $0876,$0877,3,380,17,380,19
+ $0878,$0879,3,381,17,381,19
+ $087a,$087b,3,382,17,382,19
+ $087c,$087e,1,19,17,19,19
+ $087f,$087f,3,385,17,385,19
+
+
+ $0880,$0880,3,394,17,394,21
+ $0881,$0883,3,395,17,395,21
+ $0884,$088c,3,399,17,399,21
+ $088d,$088d,3,400,17,400,21
+ $088e,$08a3,3,403,17,403,21
+ $08a4,$08a4,3,404,17,404,21
+ $08a5,$08b1,3,405,17,405,21
+ $08b2,$08b2,3,406,17,406,21
+ $08b3,$08c0,3,407,17,407,21
+ $08c1,$08c1,3,408,17,408,21
+ $08c2,$08d3,3,409,17,409,21
+ $08d4,$08d4,3,410,17,410,21
+ $08d5,$08ea,3,411,17,411,21
+ $08eb,$08ec,3,412,17,412,21
+ $08ed,$08ff,3,415,17,415,21
+ $0900,$0901,3,416,17,416,21
+ $0902,$0929,3,418,17,418,21
+ $092a,$092b,3,419,17,419,21
+
+
+ $092c,$092d,17,23,17,23,19
+ $092e,$092f,17,24,17,24,19
+ $0930,$0932,17,26,17,26,19
+ $0933,$0935,17,27,17,27,19
+ $0936,$0938,17,28,17,28,19
+ $0939,$093b,17,29,17,29,19
+ $093c,$093c,17,30,17,30,19
+ $093d,$093e,17,31,17,31,19
+ $093f,$0940,17,23,17,23,19
+ $0941,$0942,17,24,17,24,19
+ $0943,$0945,17,26,17,26,19
+ $0946,$0948,17,27,17,27,19
+ $0949,$094b,17,28,17,28,19
+ $094c,$094e,17,29,17,29,19
+ $094f,$094f,17,30,17,30,19
+ $0950,$0951,17,31,17,31,19
+ $0952,$0953,17,66,17,66,19
+ $0954,$0956,17,67,17,67,19
+ $0957,$0958,17,78,17,78,19
+ $0959,$095b,17,79,17,79,19
+ $095c,$095e,13,40,17,40,19
+ $095f,$095f,13,47,17,47,19
+ $0960,$0962,13,59,17,59,19
+ $0963,$0965,13,60,17,60,19
+ $0966,$0968,13,61,17,61,19
+ $0969,$096b,13,62,17,62,19
+ $096c,$096e,13,63,17,63,19
+ $096f,$0971,13,65,17,65,19
+ $0972,$0972,13,67,17,67,19
+ $0973,$0975,13,77,17,77,19
+ $0976,$0978,12,30,17,30,19
+ $0979,$097b,12,31,17,31,19
+ $097c,$097d,12,45,17,45,19
+ $097e,$0980,1,19,17,19,19
+ $0981,$0982,1,13,17,13,19
+ $0983,$0984,1,14,17,14,19
+ $0985,$0987,1,15,17,15,19
+ $0988,$0989,12,48,17,48,19
+ $098a,$098c,1,19,17,19,19
+ $098d,$098e,12,17,17,17,19
+ $098f,$0990,12,18,17,18,19
+ $0991,$0993,12,19,17,19,19
+ $0994,$0996,1,23,17,23,19
+ $0997,$0999,13,80,17,80,19
+ $099a,$099c,13,81,17,81,19
+ $099d,$099f,13,83,17,83,19
+ $09a0,$09a2,13,84,17,84,19
+ $09a3,$09a5,13,85,17,85,19
+ $09a6,$09a8,13,86,17,86,19
+ $09a9,$09ab,13,87,17,87,19
+ $09ac,$09ae,13,89,17,89,19
+ $09af,$09af,13,91,17,91,19
+
+
+ $09b0,$09b0,13,100,17,100,21
+ $09b1,$09b3,13,101,17,101,21
+ $09b4,$09b9,13,105,17,105,21
+ $09ba,$09ba,13,106,17,106,21
+
+
+ $09bb,$09bc,7,33,17,33,19
+ $09bd,$09bf,7,34,17,34,19
+ $09c0,$09c0,7,35,17,35,19
+
+
+ $09c1,$09c2,8,222,17,222,19
+ $09c3,$09c5,8,223,17,223,19
+ $09c6,$09c8,8,224,17,224,19
+ $09c9,$09cb,8,226,17,226,19
+ $09cc,$09cd,8,228,17,228,19
+ $09ce,$09d0,8,229,17,229,19
+ $09d1,$09d3,8,230,17,230,19
+ $09d4,$09d6,8,231,17,231,19
+ $09d7,$09d9,8,232,17,232,19
+ $09da,$09db,8,235,17,235,19
+ $09dc,$09de,8,236,17,236,19
+ $09df,$09e1,8,237,17,237,19
+ $09e2,$09e4,8,239,17,239,19
+ $09e5,$09e5,8,241,17,241,19
+ $09e6,$09e8,8,243,17,243,19
+ $09e9,$09ea,8,245,17,245,19
+ $09eb,$09ed,8,246,17,246,19
+ $09ee,$09ef,8,248,17,248,19
+ $09f0,$09f2,8,249,17,249,19
+ $09f3,$09f3,8,251,17,251,19
+
+
+ $09f4,$09f5,4,36,17,36,19
+ $09f6,$09f7,4,37,17,37,19
+ $09f8,$09f9,4,39,17,39,19
+ $09fa,$09fb,4,40,17,40,19
+ $09fc,$09fc,4,41,17,41,19
+
+
+ $09fd,$09fe,6,19,13,19,15
+ $09ff,$09ff,6,20,13,20,15
+ $0a00,$0a02,6,22,13,22,15
+ $0a03,$0a05,6,23,13,23,15
+ $0a06,$0a08,6,24,13,24,15
+ $0a09,$0a09,6,25,13,25,15
+ $0a0a,$0a0b,6,26,13,26,15
+ $0a0c,$0a0c,6,27,13,27,15
+
+
+ $0a0d,$0a0e,9,27,17,27,19
+ $0a0f,$0a0f,9,28,17,28,19
+ $0a10,$0a10,9,29,17,29,19
+ $0a11,$0a11,9,30,17,30,19
+ $0a12,$0a14,9,31,17,31,19
+ $0a15,$0a17,9,32,17,32,19
+ $0a18,$0a1a,9,33,17,33,19
+ $0a1b,$0a1d,9,34,17,34,19
+ $0a1e,$0a20,9,35,17,35,19
+ $0a21,$0a23,9,36,17,36,19
+ $0a24,$0a24,9,37,17,37,19
+ $0a25,$0a27,9,38,17,38,19
+ $0a28,$0a28,9,47,25,47,27
+ $0a29,$0a2a,9,48,9,48,11
+ $0a2b,$0a2c,9,49,9,49,11
+ $0a2d,$0a2d,9,50,9,50,11
+ $0a2e,$0a2f,9,51,9,51,11
+ $0a30,$0a30,9,52,9,52,11
+ $0a31,$0a32,9,53,9,53,11
+ $0a33,$0a33,9,54,9,54,11
+ $0a34,$0a34,9,55,17,55,19
+ $0a35,$0a37,9,56,17,56,19
+ $0a38,$0a38,9,57,17,57,19
+ $0a39,$0a3b,9,59,17,59,19
+ $0a3c,$0a3e,9,64,17,64,19
+ $0a3f,$0a41,9,73,17,73,19
+ $0a42,$0a44,9,74,17,74,19
+ $0a45,$0a47,9,75,17,75,19
+ $0a48,$0a48,9,76,17,76,19
+ $0a49,$0a4b,12,30,17,30,19
+ $0a4c,$0a4e,12,31,17,31,19
+ $0a4f,$0a50,12,45,17,45,19
+ $0a51,$0a53,1,19,17,19,19
+ $0a54,$0a55,1,13,17,13,19
+ $0a56,$0a57,1,14,17,14,19
+ $0a58,$0a5a,1,15,17,15,19
+ $0a5b,$0a5c,12,48,17,48,19
+ $0a5d,$0a5f,1,19,17,19,19
+ $0a60,$0a61,12,17,17,17,19
+ $0a62,$0a63,12,18,17,18,19
+ $0a64,$0a66,12,19,17,19,19
+ $0a67,$0a69,1,23,17,23,19
+ $0a6a,$0a6a,9,85,17,85,19
+
+
+ $0a6b,$0a6b,9,94,17,94,21
+ $0a6c,$0a6e,9,95,17,95,21
+ $0a6f,$0a72,9,99,17,99,21
+ $0a73,$0a73,9,100,17,100,21
+
+
+
+
+ Default,$0002,tmpA
+ Default,$0003,TempStringPointer
+ Default,$0005,TempVideoPointer
+ Default,$0007,CursorCol
+ Default,$0008,CursorRow
+ Default,$0009,StatusBitsA
+ Default,$000a,factor1
+ Default,$000b,factor2
+ Default,$000c,result
+ Default,$000e,KeyR
+ Default,$000f,SYS_Keyd
+ Default,$001f,SYS_Ndx
+ Default,$0020,SYS_Xmax
+ Default,$0021,SYS_Shflag
+ Default,$0022,SYS_Sfdx
+ Default,$0023,SYS_Lstx
+ Default,$0024,SYS_Delay
+ Default,$0025,SYS_Kount
+ Default,$0026,SYS_Lstshf
+ Default,$1300,keybRamCode
+ Default,$0027,from
+ Default,$0029,dest
+ Default,$002b,size
+ Default,$002d,counter
+ Default,$002e,versionPtr
+ Default,$0030,pos
+ Default,$0031,MODE
+ Default,$0032,L
+ Default,$0033,H
+ Default,$0034,YSAV
+ Default,$0035,STL
+ Default,$0036,STH
+ Default,$0037,XAML
+ Default,$0038,XAMH
+ Default,$1000,buffer
+ Default,$0039,pos
+ Default,$003a,mode
+ Default,$003b,sAddr
+ Default,$003d,eAddr
+ Default,$1000,buffer
+ Default,$003f,init
+ Default,$0040,toDebug
+ Default,$0062,multiply
+ Default,$006b,m0
+ Default,$0070,m1
+ Default,$0081,module_type
+ Default,$0082,version
+ Default,$0085,module_name
+ Default,$008a,init
+ Default,$008b,toDebug
+ Default,$00ad,clone
+ Default,$00bd,md1
+ Default,$00cb,md2
+ Default,$00cf,md3
+ Default,$00d8,md4
+ Default,$00de,fill
+ Default,$00ee,md1
+ Default,$00f8,md2
+ Default,$00fc,md3
+ Default,$0103,md4
+ Default,$0109,clean
+ Default,$010e,module_type
+ Default,$010f,version
+ Default,$0112,module_name
+ Default,$0400,VIDEO_ADDR
+ Default,$d800,COLOR_ADDR
+ Default,$0028,COLUMN_NUM
+ Default,$0019,ROWS_NUM
+ Default,$008e,CR
+ Default,$0095,BS
+ Default,$0119,init
+ Default,$0124,toDebug
+ Default,$0146,scrollUp
+ Default,$0170,sendChar
+ Default,$01cf,noScrollTriggered
+ Default,$01cf,noEndOfLine
+ Default,$01ec,exit
+ Default,$01f4,screenNewLine
+ Default,$020b,noScrollUp
+ Default,$0211,done
+ Default,$0215,module_type
+ Default,$0216,version
+ Default,$0219,module_name
+ Default,$021f,init
+ Default,$0220,toDebug
+ Default,$0242,printPetChar
+ Default,$0257,printLine
+ Default,$025d,printLoop
+ Default,$0269,exit
+ Default,$026a,byteToHex
+ Default,$027f,petCharToVideoChar
+ Default,$02c4,convDone
+ Default,$02c5,module_type
+ Default,$02c6,version
+ Default,$02c9,module_name
+ Default,$0000,MAIN
+ Default,$0001,LIB
+ Default,$0002,PROG
+ Default,$0003,CORE
+ Default,$0004,DEVICE
+ Default,$02cf,init
+ Default,$02d0,toDebug
+ Default,$02f2,printVersion
+ Default,$030c,printNext
+ Default,$0316,printType
+ Default,$0352,module_type
+ Default,$0353,version
+ Default,$0356,module_name
+ Default,$035d,type_main
+ Default,$0362,type_core
+ Default,$0367,type_lib
+ Default,$036b,type_prog
+ Default,$0370,type_device
+ Default,$0377,init
+ Default,$0378,toDebug
+ Default,$039a,module_type
+ Default,$039b,version
+ Default,$039e,module_name
+ Default,$03a5,init
+ Default,$03db,waitForKey
+ Default,$03db,loop
+ Default,$03dd,raster
+ Default,$03eb,toDebug
+ Default,$040d,KeyMapVec
+ Default,$0415,KeyMap1
+ Default,$0456,KeyMap2
+ Default,$0497,KeyMap3
+ Default,$04d8,KeyMap4
+ Default,$0519,cloneStart
+ Default,$1300,ReadKeyb
+ Default,$1327,@SMC_Row
+ Default,$132c,@Loop_Debounce
+ Default,$1336,@Loop_Col
+ Default,$133d,@SMC_Vec
+ Default,$134d,@NotShift
+ Default,$134f,@SMC_A
+ Default,$1351,@NextKey
+ Default,$1360,@Process
+ Default,$1362,@SMC_Key
+ Default,$1370,@SameKey
+ Default,$137a,@EndDelay
+ Default,$1387,@Cleanup
+ Default,$139f,@Exit
+ Default,$13a5,@ProcKeyImg
+ Default,$13af,@SetDecodeTable
+ Default,$13b6,@Cont
+ Default,$13c6,GetKey
+ Default,$13ca,@NoKey
+ Default,$13ce,@IsKey
+ Default,$13d2,@Loop
+ Default,$05f9,cloneEnd
+ Default,$05f9,module_type
+ Default,$05fa,version
+ Default,$05fd,module_name
+ Default,$0606,init
+ Default,$0607,toDebug
+ Default,$0629,delayOne
+ Default,$062e,loop1
+ Default,$0630,loop2
+ Default,$0640,out
+ Default,$0643,loop3
+ Default,$064b,exit
+ Default,$064d,module_type
+ Default,$064e,version
+ Default,$0651,module_name
+ Default,$d000,VICREG
+ Default,$d016,CR2
+ Default,$d01a,INTE
+ Default,$d012,RCNT
+ Default,$0658,init
+ Default,$065a,px4
+ Default,$0664,tvic
+ Default,$0693,clear
+ Default,$0693,init
+ Default,$0698,start
+ Default,$06b0,startCursor
+ Default,$06cf,cursortInt
+ Default,$06d8,loop
+ Default,$06e3,inputChar
+ Default,$06f0,backspace
+ Default,$06f9,execute
+ Default,$070b,toDebug
+ Default,$072d,push
+ Default,$0739,done
+ Default,$073a,backspace
+ Default,$0743,done
+ Default,$0744,exec
+ Default,$074e,stidExec
+ Default,$0763,done
+ Default,$0764,cmdHelp
+ Default,$076e,cmdReset
+ Default,$0771,cmdSysInfo
+ Default,$0777,cmdTest
+ Default,$0779,loop
+ Default,$079c,clearVideo
+ Default,$07ae,clearColors
+ Default,$07c0,wozExec
+ Default,$07c5,SETSTOR
+ Default,$07c6,SETMODE
+ Default,$07ce,BLSKIP
+ Default,$07cf,NEXTITEM
+ Default,$07d7,CONT
+ Default,$07eb,NEXTHEX
+ Default,$07fa,DIG
+ Default,$0800,HEXSHIFT
+ Default,$080b,NOTHEX
+ Default,$081e,TONEXTITEM
+ Default,$0821,RUN
+ Default,$0824,NOTSTOR
+ Default,$0828,SETADR
+ Default,$0831,NXTPRNT
+ Default,$0847,PRDATA
+ Default,$0851,XAMNEXT
+ Default,$0863,MOD8CHK
+ Default,$0869,PRBYTE
+ Default,$0872,PRHEX
+ Default,$0880,module_type
+ Default,$0881,version
+ Default,$0884,module_name
+ Default,$088e,helpString
+ Default,$08ed,aboutString
+ Default,$0902,lineString
+ Default,$092c,start
+ Default,$0960,init
+ Default,$0973,toDebug
+ Default,$09b0,module_type
+ Default,$09b1,version
+ Default,$09b4,module_name
+ Default,$09bb,https
+ Default,$d400,FV1L
+ Default,$d401,FV1H
+ Default,$d402,PCWV1L
+ Default,$d418,FMVC
+ Default,$09bb,init
+ Default,$dc00,C1PRA
+ Default,$dc01,C1PRB
+ Default,$dc02,C1DDRA
+ Default,$dc03,C1DDRB
+ Default,$dc04,C1TALO
+ Default,$dc05,C1TAHI
+ Default,$dc06,C1TBLO
+ Default,$dc07,C1TBHI
+ Default,$dc08,C1TOD10THS
+ Default,$dc09,C1TODSEC
+ Default,$dc0a,C1TODMIN
+ Default,$dc0b,C1TODHR
+ Default,$dc0c,C1TSDR
+ Default,$dc0d,C1ICR
+ Default,$dc0e,C1CRA
+ Default,$dc0f,C1CRB
+ Default,$dd00,C2PRA
+ Default,$dd01,C2PRB
+ Default,$dd02,C2DDRA
+ Default,$dd03,C2DDRB
+ Default,$dd04,C2TALO
+ Default,$dd05,C2TAHI
+ Default,$dd06,C2TBLO
+ Default,$dd07,C2TBHI
+ Default,$dd08,C2TOD10THS
+ Default,$dd09,C2TODSEC
+ Default,$dd0a,C2TODMIN
+ Default,$dd0b,C2TODHR
+ Default,$dd0c,C2TSDR
+ Default,$dd0d,C2ICR
+ Default,$dd0e,C2CRA
+ Default,$dd0f,C2CRB
+ Default,$09c1,init
+ Default,$09f4,https
+ Default,$0000,ZR0
+ Default,$0001,ZR1
+ Default,$09f4,init
+ Default,$09fd,init
+ Default,$0a0d,coldStart
+ Default,$0a28,warmStart
+ Default,$0a2d,ie1c7
+ Default,$0a3f,init
+ Default,$0a49,toDebug
+ Default,$0a6b,module_type
+ Default,$0a6c,version
+ Default,$0a6f,module_name
+
+
+
+ Default,$075f,
+ Default,$0a28,
+
+
+
+
+
+
diff --git a/main.asm b/main.asm
index 75c42bc..4adaa6d 100644
--- a/main.asm
+++ b/main.asm
@@ -1,6 +1,6 @@
.cpu _6502
-//BasicUpstart2(Boot.warmStart)
+BasicUpstart2(Boot.warmStart)
#import "./hardware/mem_map.asm"
* = $8000 "Main"
diff --git a/makefile b/makefile
index 05f93ea..55e3bdc 100644
--- a/makefile
+++ b/makefile
@@ -19,3 +19,4 @@ run:
java -jar ${KICKASS_BIN} -odir ${BUILD_PATH} -log ${BUILD_PATH}/buildlog.txt -showmem ./main.asm
cartconv -t normal -name "woz" -i ${BUILD_PATH}/main.prg -o ${BUILD_PATH}/woz.crt
x64sc ${BUILD_PATH}/woz.crt
+
diff --git a/progs/bin/test.crt b/progs/bin/test.crt
deleted file mode 100644
index 7c34008..0000000
Binary files a/progs/bin/test.crt and /dev/null differ
diff --git a/progs/diag.asm b/progs/diag.asm
deleted file mode 100644
index d1d9842..0000000
--- a/progs/diag.asm
+++ /dev/null
@@ -1,1163 +0,0 @@
-//---------------------------------------
-// c64 deadtest diagnostic 781220
-// disassembly by worldofjani.com
-//---------------------------------------
-//
-.const a00 = $00
-.const a01 = $01
-.const a02 = $02
-.const a03 = $03
-.const a09 = $09
-.const a0a = $0a
-.const a0b = $0b
-.const a0c = $0c
-.const a10 = $10
-//
-.const p09 = $09
-.const p0b = $0b
-//
-
-
-//---------------------------------------
- * = $e000 "Main"
-
- sei
- ldx #$ff
- txs
- cld
- lda #$e7
- sta a01
- lda #$37
- sta a00
- jmp ie183
-
-ie010: lda #ead8
- sta a09
- stx a0a
- lda #<$0800
- ldx #>$0800
- sta a0b
- stx a0c
- ldx #$01
- ldy #$00
-ie024: lda (p09),y
- sta (p0b),y
- iny
- bne ie024
- inc a0a
- inc a0c
- dex
- bpl ie024
- ldx #$04
-ie034: lda $e7ee,x
- sta $dc07,x
- lda $e7f2,x
- sta $dd07,x
- dex
- bne ie034
- ldx #$00
- stx a02
- stx a03
- ldx #$00
-ie04b: lda #$20
- sta $0400,x
- sta $0500,x
- sta $0600,x
- sta $0700,x
- lda #$06
- sta $d800,x
- sta $d900,x
- sta $da00,x
- sta $db00,x
- inx
- bne ie04b
- ldx #$27
-ie06c: lda e8a6,x //box upper part
- sta $0630,x
- lda #$02 //red
- sta $da30,x
- dex
- bpl ie06c
- ldx #$00
-ie07c: lda e8ce,x
- cmp #$ff
- beq ie08a
- sta $0658,x
- inx
- jmp ie07c
-
-ie08a: ldx #$00
-ie08c: lda e9bf,x //color
- cmp #$ff
- beq ie09a
- sta $da58,x
- inx
- jmp ie08c
-
-ie09a: ldx #$27
-ie09c: lda eab0,x //box lower part
- sta $0748,x
- lda #$02 //red
- sta $db48,x
- dex
- bpl ie09c
- lda #$08
- sta $dc0f
- sta $dd0f
- lda #$48
- sta $dc0e
- lda #$08
- sta $dd0e
-
-ie0bc: ldx #$2f
-ie0be: lda e7bf-1,x //vic/d000- values
- sta $cfff,x
- dex
- bne ie0be
- ldx #$18
-ie0c9: lda e817,x //c-64 dead test rev 781220
- sta $0408,x
- dex
- bpl ie0c9
- ldx #$04
-ie0d4: lda e830,x //count
- sta $07c0,x
- dex
- bpl ie0d4
- lda a02
- and #$0f
- ora #$30
- sta $07c9
- lda a02
- lsr
- lsr
- lsr
- lsr
- and #$0f
- ora #$30
- sta $07c8
- lda a03
- and #$0f
- ora #$30
- sta $07c7
- lda a03
- lsr
- lsr
- lsr
- lsr
- and #$0f
- ora #$30
- sta $07c6
- lda #$37
- sta a01
- jmp ie2fa //zeropage test
-
-ie110: jmp ie351 //stack page test
-
-ie113: jsr ie6d9
- jsr ie3a6 //screen ram test
- jsr ie6d9
- jsr ie406 //color ram test
- jsr ie6d9
- jsr ie46a //ram test
-
- lda #ead8
- sta a09
- stx a0a
- lda #<$0800
- ldx #>$0800
- sta a0b
- stx a0c
- ldx #$01
- ldy #$00
-ie139: lda (p09),y
- sta (p0b),y
- iny
- bne ie139
- inc a0a
- inc a0c
- dex
- bpl ie139
- jsr ie6d9
- jsr ie5bc //sound test
- sed
- lda #$01
- clc
- adc a02
- sta a02
- lda #$00
- adc a03
- sta a03
- cld
- lda #$e7
- sta a01
- lda #$37
- sta a00
- lda #$00
- sta $d418
- ldx #$00
- lda #$20
-ie16d: sta $0400,x
- sta $0500,x
- inx
- bne ie16d
- ldx #$2e
- lda #$20
-ie17a: sta $0600,x
- dex
- bpl ie17a
- jmp ie0bc
-
-ie183: lda #$00
- sta $d020
- sta $d021
- ldx #$15
- ldy #$00
-ie18f: lda $e7f7,x //memtest pattern
- sta $0100,y
- sta $0200,y
- sta $0300,y
- sta $0400,y
- sta $0500,y
- sta $0600,y
- sta $0700,y
- sta $0800,y
- sta $0900,y
- sta $0a00,y
- sta $0b00,y
- sta $0c00,y
- sta $0d00,y
- sta $0e00,y
- sta $0f00,y
- iny
- bne ie18f
- txa
- ldx #$00
- ldy #$00
-ie1c7: dey
- bne ie1c7
- dex
- bne ie1c7
- tax
-ie1ce: lda $0100,y
- cmp $e7f7,x //memtest pattern
- bne ie24c
- lda $0200,y
- cmp $e7f7,x //memtest pattern
- bne ie24c
- lda $0300,y
- cmp $e7f7,x //memtest pattern
- bne ie24c
- lda $0400,y
- cmp $e7f7,x //memtest pattern
- bne ie24c
- lda $0500,y
- cmp $e7f7,x //memtest pattern
- bne ie24c
- lda $0600,y
- cmp $e7f7,x //memtest pattern
- bne ie24c
- lda $0700,y
- cmp $e7f7,x //memtest pattern
- bne ie24c
- lda $0800,y
- cmp $e7f7,x //memtest pattern
- bne ie24c
- lda $0900,y
- cmp $e7f7,x //memtest pattern
- bne ie24c
- lda $0a00,y
- cmp $e7f7,x //memtest pattern
- bne ie24c
- lda $0b00,y
- cmp $e7f7,x //memtest pattern
- bne ie24c
- lda $0c00,y
- cmp $e7f7,x //memtest pattern
- bne ie24c
- lda $0d00,y
- cmp $e7f7,x //memtest pattern
- bne ie24c
- lda $0e00,y
- cmp $e7f7,x //memtest pattern
- bne ie24c
- lda $0f00,y
- cmp $e7f7,x //memtest pattern
- bne ie24c
- iny
- beq ie24f
- jmp ie1ce
-
-ie24c: jmp ie25a
-
-ie24f: dex
- bmi ie257
- ldy #$00
- jmp ie18f
-
-ie257: jmp ie010 //memtest ok
-
-ie25a: eor $e7f7,x //memtest pattern
- tax
- and #$fe
- bne ie267
- ldx #$08
- jmp ie2a5 //mem error flash
-
-ie267: txa
- and #$fd
- bne ie271
- ldx #$07
- jmp ie2a5 //mem error flash
-
-ie271: txa
- and #$fb
- bne ie27b
- ldx #$06
- jmp ie2a5 //mem error flash
-
-ie27b: txa
- and #$f7
- bne ie285
- ldx #$05
- jmp ie2a5 //mem error flash
-
-ie285: txa
- and #$ef
- bne ie28f
- ldx #$04
- jmp ie2a5 //mem error flash
-
-ie28f: txa
- and #$df
- bne ie299
- ldx #$03
- jmp ie2a5 //mem error flash
-
-ie299: txa
- and #$bf
- bne ie2a3
- ldx #$02
- jmp ie2a5 //mem error flash
-
-ie2a3: ldx #$01 //mem error flash
-ie2a5: txs
-ie2a6: lda #$01
- sta $d020
- sta $d021
- txa
- ldx #$7f
- ldy #$00
-ie2b3: dey
- bne ie2b3
- dex
- bne ie2b3
- tax
- lda #$00
- sta $d020
- sta $d021
- txa
- ldx #$7f
- ldy #$00
-ie2c7: dey
- bne ie2c7
- dex
- bne ie2c7
-ie2cd: dey
- bne ie2cd
- dex
- bne ie2cd
- tax
- dex
- beq ie2da
- jmp ie2a6
-
-ie2da: ldx #$00
- ldy #$00
-ie2de: dey
- bne ie2de
- dex
- bne ie2de
-ie2e4: dey
- bne ie2e4
- dex
- bne ie2e4
-ie2ea: dey
- bne ie2ea
- dex
- bne ie2ea
-ie2f0: dey
- bne ie2f0
- dex
- bne ie2f0
- tsx
- jmp ie2a6
-
-ie2fa: ldx #$08
-ie2fc: lda e835,x //zeropage test
- sta $0450,x
- dex
- bpl ie2fc
- ldx #$13
-ie307: lda $e7f7,x //memtest pattern
- ldy #$12
-ie30c: sta $0000,y
- iny
- bne ie30c
- txa
- ldx #$00
- ldy #$00
-ie317: dey
- bne ie317
- dex
- bne ie317
- tax
- lda $e7f7,x //memtest pattern
- ldy #$12
-ie323: cmp $0000,y
- bne ie33b
- iny
- bne ie323
- dex
- bpl ie307
- lda #$0f //"o"
- sta $045d
- lda #$0b //"k"
- sta $045e
- jmp ie110
-
-ie33b: eor $e7f7,x //memtest pattern
- tax
- lda #$02 //"b"
- sta $045d
- lda #$01 //"a"
- sta $045e
- lda #$04 //"d"
- sta $045f
- jmp ie4c1
-
-ie351: ldx #$09
-ie353: lda e83e,x //stack page
- sta $0478,x
- dex
- bpl ie353
- ldx #$13
-ie35e: lda $e7f7,x //memtest pattern
- ldy #$00
-ie363: sta $0100,y
- iny
- bne ie363
- txa
- ldx #$00
- ldy #$00
-ie36e: dey
- bne ie36e
- dex
- bne ie36e
- tax
- lda $e7f7,x //memtest pattern
-ie378: cmp $0100,y
- bne ie390
- iny
- bne ie378
- dex
- bpl ie35e
- lda #$0f //"o"
- sta $0485
- lda #$0b //"k"
- sta $0486
- jmp ie113
-
-ie390: eor $e7f7,x //memtest pattern
- tax
- lda #$02 //"b"
- sta $0485
- lda #$01 //"a"
- sta $0486
- lda #$04 //"d"
- sta $0487
- jmp ie4c1
-
-ie3a6: ldx #$09
-ie3a8: lda e863,x //screen ram
- sta $04a0,x
- dex
- bpl ie3a8
- ldx #<$0400
- ldy #>$0400
- stx a09
- sty a0a
-ie3b9: ldy #$00
- lda (p09),y
- pha
- ldx #$13
-ie3c0: lda $e7f7,x //memtest pattern
- sta (p09),y
- txa
- ldx #$00
-ie3c8: dex
- bne ie3c8
- tax
- lda (p09),y
- cmp $e7f7,x //memtest pattern
- bne ie3f0
- dex
- bpl ie3c0
- pla
- sta (p09),y
- inc a09
- bne ie3df
- inc a0a
-ie3df: lda a0a
- cmp #$08
- bne ie3b9
- lda #$0f //"o"
- sta $04ad
- lda #$0b //"k"
- sta $04ae
- rts
-
-ie3f0: eor $e7f7,x //memtest pattern
- tax
- lda #$02 //"b"
- sta $04ad
- lda #$01 //"a"
- sta $04ae
- lda #$04 //"d"
- sta $04af
- jsr ie4c1
-
-ie406: ldx #$08
-ie408: lda e850,x //color ram test
- sta $04c8,x
- dex
- bpl ie408
- ldx #<$d800
- ldy #>$d800
- stx a09
- sty a0a
- ldy #$00
-ie41b: ldy #$00
- lda (p09),y
- pha
- ldx #$0b
-ie422: lda $e80b,x
- sta (p09),y
- txa
- ldx #$00
-ie42a: dex
- bne ie42a
- tax
- lda (p09),y
- and #$0f
- cmp $e80b,x
- bne ie454
- dex
- bpl ie422
- pla
- sta (p09),y
- inc a09
- bne ie443
- inc a0a
-ie443: lda a0a
- cmp #$dc
- bne ie41b
- lda #$0f //"o"
- sta $04d5
- lda #$0b //"k"
- sta $04d6
- rts
-
-ie454: eor $e80b,x
- tax
- lda #$02 //"b"
- sta $04d5
- lda #$01 //"a"
- sta $04d6
- lda #$04 //"d"
- sta $04d7
- jmp ie4c1
-
-ie46a: ldx #$07
-ie46c: lda e848,x //ram test
- sta $04f0,x
- dex
- bpl ie46c
- ldx #<$0800
- ldy #>$0800
- stx a09
- sty a0a
-ie47d: ldy #$00
- ldx #$13
-ie481: lda $e7f7,x //memtest pattern
- sta (p09),y
- txa
- ldx #$7f
-ie489: dex
- bne ie489
- tax
- lda (p09),y
- cmp $e7f7,x //memtest pattern
- bne ie4ae
- dex
- bpl ie481
- inc a09
- bne ie49d
- inc a0a
-ie49d: lda a0a
- cmp #$10
- bne ie47d
- lda #$0f //"o"
- sta $04fd
- lda #$0b //"k"
- sta $04fe
- rts
-
-ie4ae: eor $e7f7,x //memtest pattern
- tax
- lda #$02 //"b"
- sta $04fd
- lda #$01 //"a"
- sta $04fe
- lda #$04 //"d"
- sta $04ff
-ie4c1: txa
- and #$01
- beq ie4e0
- lda #$02 //"b"
- sta $06a4
- lda #$01 //"a"
- sta $06a5
- lda #$04 //"d"
- sta $06a6
- lda #$02 //red
- sta $daa4
- sta $daa5
- sta $daa6
-ie4e0: txa
- and #$02
- beq ie4ff
- lda #$02 //"b"
- sta $0699
- lda #$01 //"a"
- sta $069a
- lda #$04 //"d"
- sta $069b
- lda #$02 //red
- sta $da99
- sta $da9a
- sta $da9b
-ie4ff: txa
- and #$04
- beq ie51e
- lda #$02 //"b"
- sta $06cc
- lda #$01 //"a"
- sta $06cd
- lda #$04 //"d"
- sta $06ce
- lda #$02 //red
- sta $dacc
- sta $dacd
- sta $dace
-ie51e: txa
- and #$08
- beq ie53d
- lda #$02 //"b"
- sta $06c1
- lda #$01 //"a"
- sta $06c2
- lda #$04 //"d"
- sta $06c3
- lda #$02 //red
- sta $dac1
- sta $dac2
- sta $dac3
-ie53d: txa
- and #$10
- beq ie55c
- lda #$02 //"b"
- sta $06f4
- lda #$01 //"a"
- sta $06f5
- lda #$04 //"d"
- sta $06f6
- lda #$02 //red
- sta $daf4
- sta $daf5
- sta $daf6
-ie55c: txa
- and #$20
- beq ie57b
- lda #$02 //"b"
- sta $06e9
- lda #$01 //"a"
- sta $06ea
- lda #$04 //"d"
- sta $06eb
- lda #$02 //red
- sta $dae9
- sta $daea
- sta $daeb
-ie57b: txa
- and #$40
- beq ie59a
- lda #$02 //"b"
- sta $071c
- lda #$01 //"a"
- sta $071d
- lda #$04 //"d"
- sta $071e
- lda #$02 //red
- sta $db1c
- sta $db1d
- sta $db1e
-ie59a: txa
- and #$80
- beq ie5b9
- lda #$02 //"b"
- sta $0711
- lda #$01 //"a"
- sta $0712
- lda #$04 //"d"
- sta $0713
- lda #$02 //red
- sta $db11
- sta $db12
- sta $db13
-ie5b9: jmp ie5b9
-
-ie5bc: ldx #$09
-ie5be: lda e859,x //sound test
- sta $0518,x
- dex
- bpl ie5be
- lda #$14
- sta $d418
- lda #$00
- sta $d417
- lda #$3e
- sta $d405
- lda #$ca
- sta $d406
- lda #$00
- sta $d412
- lda #$02
-ie5e2: pha
- ldx #$06
-ie5e5: lda e86d,x
- sta $d401
- lda e874,x
- sta $d400
- pla
- tay
- lda e89a,y
- sta $d402
- lda e89d,y
- sta $d403
- lda e897,y
- sta $d404
- tya
- pha
- lda #$6a
- jsr ie6b7
- lda #$00
- sta $d404
- lda #$00
- jsr ie6b7
- dex
- bne ie5e5
- lda #$00
- sta $d417
- lda #$18
- sta $d418
- lda #$3e
- sta $d40c
- lda #$ca
- sta $d40d
- ldx #$06
-ie62f: lda e87b,x
- sta $d408
- lda e882,x
- sta $d407
- pla
- tay
- lda e89a,y
- sta $d409
- lda e89d,y
- sta $d40a
- lda e897,y
- sta $d40b
- tya
- pha
- lda #$6a
- jsr ie6b7
- lda #$00
- sta $d40b
- lda #$00
- jsr ie6b7
- dex
- bne ie62f
- lda #$00
- sta $d417
- lda #$1f
- sta $d418
- lda #$3e
- sta $d413
- lda #$ca
- sta $d414
- ldx #$06
-ie679: lda e889,x
- sta $d40f
- lda e890,x
- sta $d40e
- pla
- tay
- lda e89a,y
- sta $d410
- lda e89d,y
- sta $d411
- lda e897,y
- sta $d412
- tya
- pha
- lda #$6a
- jsr ie6b7
- lda #$00
- sta $d412
- lda #$00
- jsr ie6b7
- dex
- bne ie679
- pla
- tay
- dey
- tya
- bmi ie6b6
- jmp ie5e2
-
-ie6b6: rts
-
-ie6b7: cmp #$00
- beq ie6ca
- tay
- txa
- pha
- tya
- tax
-ie6c0: ldy #$ff
-ie6c2: dey
- bne ie6c2
- dex
- bne ie6c0
- pla
- tax
-ie6ca: rts
-
- //not referenced?
- lda #$37
- sta a01
- lda #$48
- sta $dc0e
- lda #$08
- sta $dd0e
-ie6d9: lda $dc0b
- clc
- asl
- bcc ie6ed
- lda #$10 //"p"
- sta $07db
- lda #$0d //"m"
- sta $07dc
- clc
- bcc ie6f7
-ie6ed: lda #$01 //"a"
- sta $07db
- lda #$0d //"m"
- sta $07dc
-ie6f7: lda $dc0b
- and #$7f
- ldy #$01
- bne ie732
-ie700: sta $07d3 //xx-00-00
- stx $07d4
- lda #$2d //"-"
- sta $07d5
- lda $dc0a
- ldy #$02
- bne ie732
-ie712: sta $07d6 //00-xx-00
- stx $07d7
- lda #$2d //"-"
- sta $07d8
- lda $dc09
- ldy #$03
- bne ie732
-ie724: sta $07d9 //00-00-xx
- stx $07da
- lda $dc08
- clc
- bcc ie76b
- ldy #$00
-ie732: pha
- sty a10
- ldy #$04
- bne ie741
-ie739: ldy a10
- tax
- pla
- lsr
- lsr
- lsr
- lsr
-ie741: and #$0f
- cmp #$0a
- bmi ie74c
- sec
- sbc #$09
- bne ie74e
-ie74c: ora #$30
-ie74e: cpy #$01
- beq ie700
- cpy #$02
- beq ie712
- cpy #$03
- beq ie724
- cpy #$04
- beq ie739
- cpy #$05
- beq ie792
- cpy #$06
- beq ie7a4
- cpy #$07
- beq ie7b6
- rts
-
-ie76b: lda $dd0b
- clc
- asl
- bcc ie77f
- lda #$10 //"p"
- sta $07e6
- lda #$0d //"m"
- sta $07e7
- clc
- bcc ie789
-ie77f: lda #$01 //"a"
- sta $07e6
- lda #$0d //"m"
- sta $07e7
-ie789: lda $dd0b
- and #$7f
- ldy #$05
-ie790: bne ie732
-ie792: sta $07de //xx-00-00
- stx $07df
- lda #$2d //"-"
- sta $07e0
- lda $dd0a
- ldy #$06
- bne ie790
-ie7a4: sta $07e1 //00-xx-00
- stx $07e2
- lda #$2d //"-"
- sta $07e3
- lda $dd09
- ldy #$07
- bne ie790
-ie7b6: sta $07e4 //00-00-xx
- stx $07e5
- lda $dd08
- rts
-
-e7bf:
- .byte $00,$00,$00,$00,$00,$00,$00,$00
- .byte $00,$00,$00,$00,$00,$00,$00,$00
- .byte $00,$1b,$00,$00,$00,$00,$08,$00
- .byte $12,$00,$00,$00,$00,$00,$00,$00
- .byte $03,$01,$00,$00,$00,$00,$00,$00
- .byte $00,$00,$00,$00,$00,$00
-
-e7ee: .byte $00,$00,$00,$00
-e7f2: .byte $00,$00,$00,$00,$80
-
-e7f7: .byte $00,$55,$aa,$ff,$01,$02,$04,$08 // memtest pattern
- .byte $10,$20,$40,$80,$fe,$fd,$fb,$f7 //
- .byte $ef,$df,$bf,$7f //
-
-e80b: .byte $00,$05,$0a,$0f,$01,$02,$04,$08
- .byte $0e,$0d,$0b,$07
-
-
-.encoding "screencode_mixed"
-e817: .text "c-64 dead test rev 781220"
-e830: .text "count"
-e835: .text "zero page"
-e83e: .text "stack page"
-e848: .text "ram test"
-e850: .text "color ram"
-e859: .text "sound test"
-e863: .text "screen ram"
-
-e86d: .byte $11,$15,$19,$22,$19,$15,$11 // soundtest
-e874: .byte $25,$9a,$b1,$4b,$b1,$9a,$25 //
-e87b: .byte $22,$2b,$33,$44,$33,$2b,$22 //
-e882: .byte $4b,$34,$61,$95,$61,$34,$4b //
-e889: .byte $44,$56,$66,$89,$66,$56,$44 //
-e890: .byte $95,$69,$c2,$2b,$c2,$69,$95 //
-e897: .byte $45,$11,$25 //
-e89a: .byte $00,$00,$00 //
-e89d: .byte $08,$00,$00,$09,$00,$28,$ff,$1f //
- .byte $af //
-
-
-e8a6: .byte $20,$20,$20,$20,$20,$20,$20,$20 // box upper part
- .byte $20,$20,$20,$20,$20,$20,$22,$26
- .byte $26,$26,$26,$26,$26,$26,$26,$26
- .byte $26,$26,$26,$26,$26,$26,$26,$26
- .byte $26,$26,$26,$26,$26,$26,$26,$23
-
-e8ce: .byte $20,$20,$20,$20,$20,$20,$20,$20 // box text. 4164 etc.
- .byte $20,$20,$20,$20,$20,$20,$27,$20
- .byte $20,$20,$20,$20,$20,$20,$20,$20
- .byte $20,$20,$34,$31,$36,$34,$20,$20
- .byte $20,$20,$20,$20,$20,$20,$20,$27
- .byte $20,$20,$20,$20,$20,$20,$20,$20
- .byte $20,$20,$20,$20,$20,$20,$27,$20
- .byte $20,$20,$20,$20,$15,$39,$20,$20
- .byte $20,$20,$20,$20,$20,$20,$20,$15
- .byte $32,$31,$20,$20,$20,$20,$20,$27
- .byte $20,$20,$20,$20,$20,$20,$20,$20
- .byte $20,$20,$20,$20,$20,$20,$27,$20
- .byte $20,$20,$20,$20,$15,$31,$30,$20
- .byte $20,$20,$20,$20,$20,$20,$20,$15
- .byte $32,$32,$20,$20,$20,$20,$20,$27
- .byte $20,$20,$20,$20,$20,$20,$20,$20
- .byte $20,$20,$20,$20,$20,$20,$27,$20
- .byte $20,$20,$20,$20,$15,$31,$31,$20
- .byte $20,$20,$20,$20,$20,$20,$20,$15
- .byte $32,$33,$20,$20,$20,$20,$20,$27
- .byte $20,$20,$20,$20,$20,$20,$20,$20
- .byte $20,$20,$20,$20,$20,$20,$27,$20
- .byte $20,$20,$20,$20,$15,$31,$32,$20
- .byte $20,$20,$20,$20,$20,$20,$20,$15
- .byte $32,$34,$20,$20,$20,$20,$20,$27
- .byte $20,$20,$20,$20,$20,$20,$20,$20
- .byte $20,$20,$20,$20,$20,$20,$27,$20
- .byte $20,$20,$20,$20,$20,$20,$20,$20
- .byte $20,$20,$20,$20,$20,$20,$20,$20
- .byte $20,$20,$20,$20,$20,$20,$20,$27
- .byte $ff
-
-e9bf: .byte $06,$06,$06,$06,$06,$06,$06,$06 //color
- .byte $06,$06,$06,$06,$06,$06,$02,$06
- .byte $06,$06,$06,$06,$06,$06,$06,$06
- .byte $06,$06,$06,$06,$06,$06,$06,$06
- .byte $06,$06,$06,$06,$06,$06,$06,$02
- .byte $06,$06,$06,$06,$06,$06,$06,$06
- .byte $06,$06,$06,$06,$06,$06,$02,$06
- .byte $06,$06,$06,$06,$06,$06,$06,$06
- .byte $06,$06,$06,$06,$06,$06,$06,$06
- .byte $06,$06,$06,$06,$06,$06,$06,$02
- .byte $06,$06,$06,$06,$06,$06,$06,$06
- .byte $06,$06,$06,$06,$06,$06,$02,$06
- .byte $06,$06,$06,$06,$06,$06,$06,$06
- .byte $06,$06,$06,$06,$06,$06,$06,$06
- .byte $06,$06,$06,$06,$06,$06,$06,$02
- .byte $06,$06,$06,$06,$06,$06,$06,$06
- .byte $06,$06,$06,$06,$06,$06,$02,$06
- .byte $06,$06,$06,$06,$06,$06,$06,$06
- .byte $06,$06,$06,$06,$06,$06,$06,$06
- .byte $06,$06,$06,$06,$06,$06,$06,$02
- .byte $06,$06,$06,$06,$06,$06,$06,$06
- .byte $06,$06,$06,$06,$06,$06,$02,$06
- .byte $06,$06,$06,$06,$06,$06,$06,$06
- .byte $06,$06,$06,$06,$06,$06,$06,$06
- .byte $06,$06,$06,$06,$06,$06,$06,$02
- .byte $06,$06,$06,$06,$06,$06,$06,$06
- .byte $06,$06,$06,$06,$06,$06,$02,$06
- .byte $06,$06,$06,$06,$06,$06,$06,$06
- .byte $06,$06,$06,$06,$06,$06,$06,$06
- .byte $06,$06,$06,$06,$06,$06,$06,$02
- .byte $ff
-
-eab0: .byte $20,$20,$20,$20,$20,$20,$20,$20 //box lower part
- .byte $20,$20,$20,$20,$20,$20,$24,$26
- .byte $26,$26,$26,$26,$26,$26,$26,$26
- .byte $26,$26,$26,$26,$26,$26,$26,$26
- .byte $26,$26,$26,$26,$26,$26,$26,$25
-
-ead8: .byte $00,$00,$00,$00,$00,$00,$00,$00 //font
- .byte $7e,$42,$42,$7e,$46,$46,$46,$00
- .byte $7e,$62,$62,$7e,$62,$62,$7e,$00
- .byte $7e,$42,$40,$40,$40,$42,$7e,$00
- .byte $7e,$42,$42,$62,$62,$62,$7e,$00
- .byte $7e,$60,$60,$78,$70,$70,$7e,$00
- .byte $7e,$60,$60,$78,$70,$70,$70,$00
- .byte $7e,$42,$40,$6e,$62,$62,$7e,$00
- .byte $42,$42,$42,$7e,$62,$62,$62,$00
- .byte $10,$10,$10,$18,$18,$18,$18,$00
- .byte $04,$04,$04,$06,$06,$66,$7e,$00
- .byte $42,$44,$48,$7e,$66,$66,$66,$00
- .byte $40,$40,$40,$60,$60,$60,$7e,$00
- .byte $43,$67,$5b,$43,$43,$43,$43,$00
- .byte $e2,$d2,$ca,$c6,$c2,$c2,$c2,$00
- .byte $7e,$42,$42,$46,$46,$46,$7e,$00
- .byte $7e,$42,$42,$7e,$60,$60,$60,$00
- .byte $7e,$42,$42,$62,$6a,$66,$7e,$00
- .byte $7e,$42,$42,$7e,$68,$64,$62,$00
- .byte $7e,$42,$40,$7e,$02,$62,$7e,$00
- .byte $7e,$18,$18,$18,$18,$18,$18,$00
- .byte $62,$62,$62,$62,$62,$62,$3c,$00
- .byte $62,$62,$62,$62,$62,$24,$18,$00
- .byte $c2,$c2,$c2,$c2,$da,$e6,$c2,$00
- .byte $62,$62,$24,$18,$24,$62,$62,$00
- .byte $62,$62,$62,$34,$18,$18,$18,$00
- .byte $7f,$03,$06,$08,$10,$60,$7f,$00
- .byte $3c,$30,$30,$30,$30,$30,$3c,$00
- .byte $0e,$10,$30,$fe,$30,$60,$ff,$00
- .byte $3c,$0c,$0c,$0c,$0c,$0c,$3c,$00
- .byte $00,$18,$3c,$7e,$18,$18,$18,$18
- .byte $00,$10,$30,$7f,$7f,$30,$10,$00
- .byte $00,$00,$00,$00,$00,$00,$00,$00
- .byte $0e,$0e,$60,$60,$60,$60,$0e,$0e
- .byte $00,$00,$00,$07,$0f,$1c,$18,$18
- .byte $00,$00,$00,$e0,$f0,$38,$18,$18
- .byte $18,$18,$1c,$0f,$07,$00,$00,$00
- .byte $18,$18,$38,$f0,$e0,$00,$00,$00
- .byte $00,$00,$00,$ff,$ff,$00,$00,$00
- .byte $18,$18,$18,$18,$18,$18,$18,$18
- .byte $0c,$18,$30,$30,$30,$18,$0c,$00
- .byte $30,$18,$0c,$0c,$0c,$18,$30,$00
- .byte $00,$66,$3c,$ff,$3c,$66,$00,$00
- .byte $00,$18,$18,$7e,$18,$18,$00,$00
- .byte $00,$00,$00,$00,$00,$18,$18,$30
- .byte $00,$00,$00,$7e,$00,$00,$00,$00
- .byte $00,$00,$00,$00,$00,$18,$18,$00
- .byte $00,$03,$06,$0c,$18,$30,$60,$00
- .byte $7e,$42,$42,$42,$42,$42,$7e,$00
- .byte $30,$30,$10,$10,$3c,$3c,$3c,$00
- .byte $7e,$02,$02,$7e,$40,$40,$7e,$00
- .byte $7e,$02,$02,$7e,$06,$06,$7e,$00
- .byte $60,$60,$60,$66,$7e,$06,$06,$00
- .byte $7e,$40,$40,$7e,$02,$02,$7e,$00
- .byte $78,$48,$40,$7e,$42,$42,$7e,$00
- .byte $7e,$42,$04,$08,$08,$08,$08,$00
- .byte $3c,$24,$24,$3c,$66,$66,$7e,$00
- .byte $7e,$42,$42,$7e,$06,$06,$06,$00
-prefill:
-
-
-.fill ($ffff-prefill-5),$aa
-
- *=$fffa
- .word $e000
- *=$fffc
- .word $e000
- *=$fffe
- .word $e000
-
-//---------------------------------------
-//eof
\ No newline at end of file
diff --git a/progs/diag/diag.asm b/progs/diag/diag.asm
new file mode 100644
index 0000000..d706c48
--- /dev/null
+++ b/progs/diag/diag.asm
@@ -0,0 +1,1297 @@
+//-------------------------------------------
+// c64 deadtest diagnostic 781220
+// original disassembly by worldofjani.com
+// Augmented by =stid= in woz64
+//-------------------------------------------
+//
+.const ZProcessDataDir = $00 // 6510 CPU's data direction I/O port register; 0 = input, 1 = output
+.const ZProcessPortBit = $01 // 6510 CPU's on-chip port register
+//
+.const counterLow = $02
+.const counterHigh = $03
+.const tmpSourceAddressLow = $09
+.const tmpSourceAddressHigh = $0a
+.const tmpDestAddressLow = $0b
+.const tmpDestAddressHigh = $0c
+.const tmpY = $10
+//
+.const tmpTargetPointer = $09
+.const tmpDestPointer = $0b
+//
+.const FAIL_COLOR = $02
+.const BOX_BORDER_COLOR = $02
+
+
+.macro LongDelayLoop (xRep, yRep) {
+ txa
+ ldx #xRep
+ ldy #yRep
+!: dey
+ bne !-
+ dex
+ bne !-
+ tax
+}
+
+.macro ShortDelayLoop (xRep) {
+ txa
+ ldx #xRep
+!: dex
+ bne !-
+ tax
+}
+
+//---------------------------------------
+ * = $e000 "Main"
+
+
+/////// MAIN
+main: {
+ sei // Set Interrupt
+ ldx #$ff
+ txs
+ cld
+ lda #$e7 // Set IO registers
+ sta ZProcessPortBit
+ lda #$37 // Set Data direction
+ sta ZProcessDataDir
+ jmp memBankTest
+
+
+ // At this point RAM is working
+ // program draw main interface layout
+ drawLayout:
+ lda #font
+ sta tmpSourceAddressLow // Source Address
+ stx tmpSourceAddressHigh
+ lda #<$0800
+ ldx #>$0800
+ sta tmpDestAddressLow // Dest Address
+ stx tmpDestAddressHigh
+ ldx #$01
+ ldy #$00
+ fontCopyLoop:
+ lda (tmpTargetPointer),y // Load from source
+ sta (tmpDestPointer),y // Write to dest
+ iny
+ bne fontCopyLoop
+ inc tmpSourceAddressHigh
+ inc tmpDestAddressHigh
+ dex
+ bpl fontCopyLoop // Loop until -1
+
+ // Clear CIA timers
+ ldx #$04
+ !: lda cia1Table,x
+ sta $dc07,x
+ lda cia2Table,x
+ sta $dd07,x
+ dex
+ bne !-
+
+ // Reset Counter
+ ldx #$00
+ stx counterLow
+ stx counterHigh
+
+
+ ldx #$00 // Cleanup Screen
+ clanScreenLoop:
+ lda #$20
+ sta $0400,x // Video Mem
+ sta $0500,x
+ sta $0600,x
+ sta $0700,x
+ lda #$06
+ sta $d800,x // Color Videa Mem
+ sta $d900,x
+ sta $da00,x
+ sta $db00,x
+ inx
+ bne clanScreenLoop
+
+ // Upper Box
+ ldx #$27
+ !: lda upBox,x // Load Box Bytes
+ sta $0630,x // Store in Mem
+ lda #BOX_BORDER_COLOR // Color Red
+ sta $da30,x
+ dex
+ bpl !-
+
+ // Box border & Area
+ ldx #$00
+ !: lda boxArea,x
+ cmp #$ff
+ beq boxFill
+ sta $0658,x
+ inx
+ jmp !-
+
+ // Box Color fill
+ boxFill:
+ ldx #$00
+ !: lda boxColor,x //color
+ cmp #$ff
+ beq drawLowerBox
+ sta $da58,x
+ inx
+ jmp !-
+
+ // Lower Box
+ drawLowerBox:
+ ldx #$27
+ !: lda lowBox,x
+ sta $0748,x
+ lda #BOX_BORDER_COLOR //Color red
+ sta $db48,x
+ dex
+ bpl !-
+
+ // Set CIA timers
+ lda #$08
+ sta $dc0f
+ sta $dd0f
+ lda #$48
+ sta $dc0e
+ lda #$08
+ sta $dd0e
+
+ // Init VIC
+ initVic:
+ ldx #$2f // Init VIC values
+ !: lda e7bf-1,x
+ sta $cfff,x
+ dex
+ bne !-
+
+ // About string
+ ldx #$16
+ !: lda strAbout,x
+ sta $0408,x
+ dex
+ bpl !-
+ ldx #$04
+
+ // Test Count
+ !: lda strCount,x // Print Count Label
+ sta $07c0,x
+ dex
+ bpl !-
+
+ // Print Count
+ lda counterLow
+ and #$0f
+ ora #$30
+ sta $07c9
+ lda counterLow
+ lsr
+ lsr
+ lsr
+ lsr
+ and #$0f
+ ora #$30
+ sta $07c8
+ lda counterHigh
+ and #$0f
+ ora #$30
+ sta $07c7
+ lda counterHigh
+ lsr
+ lsr
+ lsr
+ lsr
+ and #$0f
+ ora #$30
+ sta $07c6
+
+ lda #$37
+ sta ZProcessPortBit
+ jmp zeroPageTest
+ goStackPageTest:
+ jmp stackPageTest
+}
+
+
+ie113: jsr ie6d9
+ jsr screenRamTest //screen ram test
+ jsr ie6d9
+ jsr colorRamTest //color ram test
+ jsr ie6d9
+ jsr ramTest //ram test
+
+ lda #font
+ sta tmpSourceAddressLow
+ stx tmpSourceAddressHigh
+ lda #<$0800
+ ldx #>$0800
+ sta tmpDestAddressLow
+ stx tmpDestAddressHigh
+ ldx #$01
+ ldy #$00
+ie139: lda (tmpTargetPointer),y
+ sta (tmpDestPointer),y
+ iny
+ bne ie139
+ inc tmpSourceAddressHigh
+ inc tmpDestAddressHigh
+ dex
+ bpl ie139
+ jsr ie6d9
+ jsr soundTest //sound test
+ sed
+ lda #$01
+ clc
+ adc counterLow
+ sta counterLow
+ lda #$00
+ adc counterHigh
+ sta counterHigh
+ cld
+ lda #$e7
+ sta ZProcessPortBit
+ lda #$37
+ sta ZProcessDataDir
+ lda #$00
+ sta $d418
+ ldx #$00
+ lda #$20
+ie16d: sta $0400,x
+ sta $0500,x
+ inx
+ bne ie16d
+ ldx #$2e
+ lda #$20
+ie17a: sta $0600,x
+ dex
+ bpl ie17a
+ jmp main.initVic
+
+
+/////// MEMORY BANK TEST
+memBankTest: {
+ lda #$00 // Set video to Black
+ sta $d020 // Border color (only bits #0-#3).
+ sta $d021 // Background color (only bits #0-#3).
+
+ // prepare memory
+ ldx #$15 // MemPattern Lenght is 20 - start at 21 here to dec later
+ ldy #$00 // reset loop counter
+
+ memPatternSetLoop:
+ lda MemTestPattern,x // Load pattern byte
+ sta $0100,y // Store in mem chunks, will fill
+ sta $0200,y
+ sta $0300,y
+ sta $0400,y
+ sta $0500,y
+ sta $0600,y
+ sta $0700,y
+ sta $0800,y
+ sta $0900,y
+ sta $0a00,y
+ sta $0b00,y
+ sta $0c00,y
+ sta $0d00,y
+ sta $0e00,y
+ sta $0f00,y
+ iny
+ bne memPatternSetLoop // Loop to FF
+
+ LongDelayLoop(0,0)
+
+ // Compare previous stored mem pattern
+ // Against related mem chunks
+ memPatternCompLoop:
+ lda $0100,y
+ cmp MemTestPattern,x
+ bne memTestFailed
+ lda $0200,y
+ cmp MemTestPattern,x
+ bne memTestFailed
+ lda $0300,y
+ cmp MemTestPattern,x
+ bne memTestFailed
+ lda $0400,y
+ cmp MemTestPattern,x
+ bne memTestFailed
+ lda $0500,y
+ cmp MemTestPattern,x
+ bne memTestFailed
+ lda $0600,y
+ cmp MemTestPattern,x
+ bne memTestFailed
+ lda $0700,y
+ cmp MemTestPattern,x
+ bne memTestFailed
+ lda $0800,y
+ cmp MemTestPattern,x
+ bne memTestFailed
+ lda $0900,y
+ cmp MemTestPattern,x
+ bne memTestFailed
+ lda $0a00,y
+ cmp MemTestPattern,x
+ bne memTestFailed
+ lda $0b00,y
+ cmp MemTestPattern,x
+ bne memTestFailed
+ lda $0c00,y
+ cmp MemTestPattern,x
+ bne memTestFailed
+ lda $0d00,y
+ cmp MemTestPattern,x
+ bne memTestFailed
+ lda $0e00,y
+ cmp MemTestPattern,x
+ bne memTestFailed
+ lda $0f00,y
+ cmp MemTestPattern,x
+ bne memTestFailed
+ iny
+ beq memTestPassed // Test done, no issues
+ jmp memPatternCompLoop // Loop over FF range
+
+ memTestFailed:
+ jmp memFailureFlash // Memory Pattern Test failed
+
+ memTestPassed:
+ dex // Dec X to loade next pattern byte
+ bmi memTestDone // Done? - exit loop
+ ldy #$00 // Reset Y counter
+ jmp memPatternSetLoop // back to pattern loop with new x pointer
+
+ memTestDone:
+ jmp main.drawLayout //memtest ok, go to next stage
+
+
+ memFailureFlash: {
+ // Given actual pattern, indentify what's failed
+
+ // Bank 8 Failed
+ eor MemTestPattern,x
+ tax
+ and #$fe
+ bne bank7Fail
+ ldx #$08
+ jmp flash //mem error flash
+
+ bank7Fail:
+ txa
+ and #$fd
+ bne bank6Fail
+ ldx #$07
+ jmp flash //mem error flash
+
+ bank6Fail:
+ txa
+ and #$fb
+ bne bank5Fail
+ ldx #$06
+ jmp flash //mem error flash
+
+ bank5Fail:
+ txa
+ and #$f7
+ bne bank4Fail
+ ldx #$05
+ jmp flash //mem error flash
+
+ bank4Fail:
+ txa
+ and #$ef
+ bne bank3Fail
+ ldx #$04
+ jmp flash //mem error flash
+
+ bank3Fail:
+ txa
+ and #$df
+ bne bank2Fail
+ ldx #$03
+ jmp flash //mem error flash
+
+ bank2Fail:
+ txa
+ and #$bf
+ bne bank1Fail
+ ldx #$02
+ jmp flash //mem error flash
+
+ bank1Fail:
+ ldx #$01 //mem error flash
+ }
+
+
+ flash: {
+ txs
+ flashLoop: // Infinite Flash Loop
+ lda #$01 // set Screen to White
+ sta $d020
+ sta $d021
+
+ LongDelayLoop($7f,0)
+
+ lda #$00 // set Screen to Black
+ sta $d020
+ sta $d021
+
+ LongDelayLoop($7f,0)
+
+ !: dey
+ bne !-
+ dex
+ bne !-
+ tax
+ dex
+ beq endLoopDelay // Flash Loop End
+ jmp flashLoop
+
+ // End flash cycle Long Delay
+ endLoopDelay:
+ ldx #$00
+ ldy #$00
+ !: dey
+ bne !-
+ dex
+ bne !-
+ !: dey
+ bne !-
+ dex
+ bne !-
+ !: dey
+ bne !-
+ dex
+ bne !-
+ !: dey
+ bne !-
+ dex
+ bne !-
+ tsx
+ jmp flashLoop // Back to main loop
+ }
+}
+
+
+/////// ZERO PAGE TEST
+zeroPageTest: {
+ ldx #$08
+ !: lda strZero,x // Print Zero Page String
+ sta $0450,x
+ dex
+ bpl !-
+
+ // Start filling Zero Page with mem pattern's byte
+ ldx #$13
+ zeroPagePatternLoop:
+ lda MemTestPattern,x
+ ldy #$12
+ !: sta $0000,y
+ iny
+ bne !-
+
+ LongDelayLoop(0,0)
+
+ // Check Zero Page mem consistency
+ lda MemTestPattern,x
+ ldy #$12
+ !: cmp $0000,y
+ bne zeroPagePatternFailed
+ iny
+ bne !-
+ dex
+ bpl zeroPagePatternLoop
+
+ // Zero Page Pattern Test OK
+ lda #$0f //"o"
+ sta $045d
+ lda #$0b //"k"
+ sta $045e
+ jmp main.goStackPageTest
+
+ // Zero Page Pattern Test BAD
+ zeroPagePatternFailed:
+ eor MemTestPattern,x
+ tax
+ lda #$02 //"b"
+ sta $045d
+ lda #$01 //"a"
+ sta $045e
+ lda #$04 //"d"
+ sta $045f
+ jmp testU
+}
+
+
+/////// STACK TRACE TEST
+stackPageTest: {
+ ldx #$09
+ !: lda strStack,x // stack page label
+ sta $0478,x
+ dex
+ bpl !-
+
+ ldx #$13
+ stackPagePatternLoop:
+ lda MemTestPattern,x
+ ldy #$00
+ !: sta $0100,y
+ iny
+ bne !-
+
+ LongDelayLoop(0,0)
+
+ // Test Stack Pattern consistency
+ tax
+ lda MemTestPattern,x
+ !: cmp $0100,y
+ bne stackPageFailed
+ iny
+ bne !-
+ dex
+ bpl stackPagePatternLoop
+ lda #$0f //"o"
+ sta $0485
+ lda #$0b //"k"
+ sta $0486
+ jmp ie113
+
+ stackPageFailed:
+ eor MemTestPattern,x //memtest pattern
+ tax
+ lda #$02 //"b"
+ sta $0485
+ lda #$01 //"a"
+ sta $0486
+ lda #$04 //"d"
+ sta $0487
+ jmp testU
+}
+
+
+/////// SCREEN RAM TEST
+screenRamTest: {
+ ldx #$09
+ !: lda strScreen,x //screen ram label
+ sta $04a0,x
+ dex
+ bpl !-
+
+ ldx #<$0400
+ ldy #>$0400
+ stx tmpSourceAddressLow
+ sty tmpSourceAddressHigh
+ screenRamTestLoop:
+ ldy #$00
+ lda (tmpTargetPointer),y
+ pha
+ ldx #$13
+ screenRamPatternTestLoop:
+ lda MemTestPattern,x
+ sta (tmpTargetPointer),y
+
+ ShortDelayLoop(0)
+
+ lda (tmpTargetPointer),y
+ cmp MemTestPattern,x
+ bne screenRamTestFailed
+ dex
+ bpl screenRamPatternTestLoop
+ pla
+ sta (tmpTargetPointer),y
+ inc tmpSourceAddressLow
+ bne !+
+ inc tmpSourceAddressHigh // > 255
+
+ !: lda tmpSourceAddressHigh
+ cmp #$08
+ bne screenRamTestLoop
+ lda #$0f //"o"
+ sta $04ad
+ lda #$0b //"k"
+ sta $04ae
+ rts
+
+ screenRamTestFailed:
+ eor MemTestPattern,x
+ tax
+ lda #$02 //"b"
+ sta $04ad
+ lda #$01 //"a"
+ sta $04ae
+ lda #$04 //"d"
+ sta $04af
+ jsr testU
+}
+
+
+/////// COLOR RAM TEST
+colorRamTest: {
+ ldx #$08
+ !: lda srtColor,x // Print color ram test
+ sta $04c8,x
+ dex
+ bpl !-
+
+ ldx #<$d800
+ ldy #>$d800
+ stx tmpSourceAddressLow
+ sty tmpSourceAddressHigh
+ ldy #$00
+ colorRamTestLoop:
+ ldy #$00
+ lda (tmpTargetPointer),y
+ pha
+ ldx #$0b
+ colorRamPattermTestLoop:
+ lda colorRamPattern,x
+ sta (tmpTargetPointer),y
+
+ ShortDelayLoop(0)
+
+ lda (tmpTargetPointer),y
+ and #$0f
+ cmp colorRamPattern,x
+ bne colorRamTestFailed
+ dex
+ bpl colorRamPattermTestLoop
+ pla
+ sta (tmpTargetPointer),y
+ inc tmpSourceAddressLow
+ bne !+ // > 255
+ inc tmpSourceAddressHigh
+ !: lda tmpSourceAddressHigh
+ cmp #$dc
+ bne colorRamTestLoop
+ lda #$0f //"o"
+ sta $04d5
+ lda #$0b //"k"
+ sta $04d6
+ rts
+
+ colorRamTestFailed:
+ eor colorRamPattern,x
+ tax
+ lda #$02 //"b"
+ sta $04d5
+ lda #$01 //"a"
+ sta $04d6
+ lda #$04 //"d"
+ sta $04d7
+ jmp testU
+}
+
+/////// RAM TEST
+ramTest: {
+
+ ldx #$07
+ !: lda strRam,x // ram test label
+ sta $04f0,x
+ dex
+ bpl !-
+
+ ldx #<$0800
+ ldy #>$0800
+ stx tmpSourceAddressLow
+ sty tmpSourceAddressHigh
+ RamTestLoop:
+ ldy #$00
+ ldx #$13
+ RamTestPatternLoop:
+ lda MemTestPattern,x
+ sta (tmpTargetPointer),y
+
+ ShortDelayLoop($7f)
+
+ lda (tmpTargetPointer),y
+ cmp MemTestPattern,x
+ bne RamTestFailed
+ dex
+ bpl RamTestPatternLoop
+ inc tmpSourceAddressLow
+ bne !+
+ inc tmpSourceAddressHigh // > 255
+ !: lda tmpSourceAddressHigh
+ cmp #$10
+ bne RamTestLoop
+ lda #$0f //"o"
+ sta $04fd
+ lda #$0b //"k"
+ sta $04fe
+ rts
+
+ RamTestFailed:
+ eor MemTestPattern,x
+ tax
+ lda #$02 //"b"
+ sta $04fd
+ lda #$01 //"a"
+ sta $04fe
+ lda #$04 //"d"
+ sta $04ff
+}
+
+////// TEST FAILED U
+testU: {
+ testU21:
+ txa
+ and #$01
+ beq testU9
+ lda #$02 //"b"
+ sta $06a4
+ lda #$01 //"a"
+ sta $06a5
+ lda #$04 //"d"
+ sta $06a6
+ lda #FAIL_COLOR //red
+ sta $daa4
+ sta $daa5
+ sta $daa6
+
+ testU9:
+ txa
+ and #$02
+ beq testU22
+ lda #$02 //"b"
+ sta $0699
+ lda #$01 //"a"
+ sta $069a
+ lda #$04 //"d"
+ sta $069b
+ lda #FAIL_COLOR //red
+ sta $da99
+ sta $da9a
+ sta $da9b
+
+ testU22:
+ txa
+ and #$04
+ beq testU10
+ lda #$02 //"b"
+ sta $06cc
+ lda #$01 //"a"
+ sta $06cd
+ lda #$04 //"d"
+ sta $06ce
+ lda #FAIL_COLOR //red
+ sta $dacc
+ sta $dacd
+ sta $dace
+
+ testU10:
+ txa
+ and #$08
+ beq testU23
+ lda #$02 //"b"
+ sta $06c1
+ lda #$01 //"a"
+ sta $06c2
+ lda #$04 //"d"
+ sta $06c3
+ lda #FAIL_COLOR //red
+ sta $dac1
+ sta $dac2
+ sta $dac3
+
+ testU23:
+ txa
+ and #$10
+ beq testU11
+ lda #$02 //"b"
+ sta $06f4
+ lda #$01 //"a"
+ sta $06f5
+ lda #$04 //"d"
+ sta $06f6
+ lda #FAIL_COLOR //red
+ sta $daf4
+ sta $daf5
+ sta $daf6
+
+ testU11:
+ txa
+ and #$20
+ beq testU24
+ lda #$02 //"b"
+ sta $06e9
+ lda #$01 //"a"
+ sta $06ea
+ lda #$04 //"d"
+ sta $06eb
+ lda #FAIL_COLOR //red
+ sta $dae9
+ sta $daea
+ sta $daeb
+
+ testU24:
+ txa
+ and #$40
+ beq testU12
+ lda #$02 //"b"
+ sta $071c
+ lda #$01 //"a"
+ sta $071d
+ lda #$04 //"d"
+ sta $071e
+ lda #FAIL_COLOR //red
+ sta $db1c
+ sta $db1d
+ sta $db1e
+
+ testU12:
+ txa
+ and #$80
+ beq deadLoop
+ lda #$02 //"b"
+ sta $0711
+ lda #$01 //"a"
+ sta $0712
+ lda #$04 //"d"
+ sta $0713
+ lda #FAIL_COLOR //red
+ sta $db11
+ sta $db12
+ sta $db13
+
+ // Something bad failed - program stop
+ deadLoop:
+ jmp deadLoop
+}
+
+soundTest:
+ ldx #$09
+!: lda strSound,x //label sound test
+ sta $0518,x
+ dex
+ bpl !-
+
+ lda #$14
+ sta $d418
+ lda #$00
+ sta $d417
+ lda #$3e
+ sta $d405
+ lda #$ca
+ sta $d406
+ lda #$00
+ sta $d412
+ lda #$02
+ie5e2: pha
+ ldx #$06
+ie5e5: lda sound1,x
+ sta $d401
+ lda sound2,x
+ sta $d400
+ pla
+ tay
+ lda sound8,y
+ sta $d402
+ lda sound9,y
+ sta $d403
+ lda sound7,y
+ sta $d404
+ tya
+ pha
+ lda #$6a
+ jsr ie6b7
+ lda #$00
+ sta $d404
+ lda #$00
+ jsr ie6b7
+ dex
+ bne ie5e5
+ lda #$00
+ sta $d417
+ lda #$18
+ sta $d418
+ lda #$3e
+ sta $d40c
+ lda #$ca
+ sta $d40d
+ ldx #$06
+ie62f: lda sound3,x
+ sta $d408
+ lda sound4,x
+ sta $d407
+ pla
+ tay
+ lda sound8,y
+ sta $d409
+ lda sound9,y
+ sta $d40a
+ lda sound7,y
+ sta $d40b
+ tya
+ pha
+ lda #$6a
+ jsr ie6b7
+ lda #$00
+ sta $d40b
+ lda #$00
+ jsr ie6b7
+ dex
+ bne ie62f
+ lda #$00
+ sta $d417
+ lda #$1f
+ sta $d418
+ lda #$3e
+ sta $d413
+ lda #$ca
+ sta $d414
+ ldx #$06
+ie679: lda sound5,x
+ sta $d40f
+ lda sound6,x
+ sta $d40e
+ pla
+ tay
+ lda sound8,y
+ sta $d410
+ lda sound9,y
+ sta $d411
+ lda sound7,y
+ sta $d412
+ tya
+ pha
+ lda #$6a
+ jsr ie6b7
+ lda #$00
+ sta $d412
+ lda #$00
+ jsr ie6b7
+ dex
+ bne ie679
+ pla
+ tay
+ dey
+ tya
+ bmi ie6b6
+ jmp ie5e2
+
+ie6b6: rts
+
+ie6b7: cmp #$00
+ beq ie6ca
+ tay
+ txa
+ pha
+ tya
+ tax
+ie6c0: ldy #$ff
+ie6c2: dey
+ bne ie6c2
+ dex
+ bne ie6c0
+ pla
+ tax
+ie6ca: rts
+
+ //not referenced?
+ lda #$37
+ sta ZProcessPortBit
+ lda #$48
+ sta $dc0e
+ lda #$08
+ sta $dd0e
+ie6d9: lda $dc0b
+ clc
+ asl
+ bcc ie6ed
+ lda #$10 //"p"
+ sta $07db
+ lda #$0d //"m"
+ sta $07dc
+ clc
+ bcc ie6f7
+ie6ed: lda #$01 //"a"
+ sta $07db
+ lda #$0d //"m"
+ sta $07dc
+ie6f7: lda $dc0b
+ and #$7f
+ ldy #$01
+ bne ie732
+ie700: sta $07d3 //xx-00-00
+ stx $07d4
+ lda #$2d //"-"
+ sta $07d5
+ lda $dc0a
+ ldy #$02
+ bne ie732
+ie712: sta $07d6 //00-xx-00
+ stx $07d7
+ lda #$2d //"-"
+ sta $07d8
+ lda $dc09
+ ldy #$03
+ bne ie732
+ie724: sta $07d9 //00-00-xx
+ stx $07da
+ lda $dc08
+ clc
+ bcc ie76b
+ ldy #$00
+ie732: pha
+ sty tmpY
+ ldy #$04
+ bne ie741
+ie739: ldy tmpY
+ tax
+ pla
+ lsr
+ lsr
+ lsr
+ lsr
+ie741: and #$0f
+ cmp #$0a
+ bmi ie74c
+ sec
+ sbc #$09
+ bne ie74e
+ie74c: ora #$30
+ie74e: cpy #$01
+ beq ie700
+ cpy #$02
+ beq ie712
+ cpy #$03
+ beq ie724
+ cpy #$04
+ beq ie739
+ cpy #$05
+ beq ie792
+ cpy #$06
+ beq ie7a4
+ cpy #$07
+ beq ie7b6
+ rts
+
+ie76b: lda $dd0b
+ clc
+ asl
+ bcc ie77f
+ lda #$10 //"p"
+ sta $07e6
+ lda #$0d //"m"
+ sta $07e7
+ clc
+ bcc ie789
+ie77f: lda #$01 //"a"
+ sta $07e6
+ lda #$0d //"m"
+ sta $07e7
+ie789: lda $dd0b
+ and #$7f
+ ldy #$05
+ie790: bne ie732
+ie792: sta $07de //xx-00-00
+ stx $07df
+ lda #$2d //"-"
+ sta $07e0
+ lda $dd0a
+ ldy #$06
+ bne ie790
+ie7a4: sta $07e1 //00-xx-00
+ stx $07e2
+ lda #$2d //"-"
+ sta $07e3
+ lda $dd09
+ ldy #$07
+ bne ie790
+ie7b6: sta $07e4 //00-00-xx
+ stx $07e5
+ lda $dd08
+ rts
+
+e7bf:
+ .byte $00,$00,$00,$00,$00,$00,$00,$00
+ .byte $00,$00,$00,$00,$00,$00,$00,$00
+ .byte $00,$1b,$00,$00,$00,$00,$08,$00
+ .byte $12,$00,$00,$00,$00,$00,$00,$00
+ .byte $03,$01,$00,$00,$00,$00,$00,$00
+ .byte $00,$00,$00,$00,$00,$00
+
+cia1Table: .byte $00,$00,$00,$00
+cia2Table: .byte $00,$00,$00,$00,$80
+
+MemTestPattern:
+ .byte $00,$55,$aa,$ff,$01,$02,$04,$08 // memtest pattern
+ .byte $10,$20,$40,$80,$fe,$fd,$fb,$f7 //
+ .byte $ef,$df,$bf,$7f //
+
+colorRamPattern: .byte $00,$05,$0a,$0f,$01,$02,$04,$08
+ .byte $0e,$0d,$0b,$07
+
+
+.encoding "screencode_mixed"
+strAbout: .text "c-64 dead test rev stid"
+strCount: .text "count"
+strZero: .text "zero page"
+strStack: .text "stack page"
+strRam: .text "ram test"
+srtColor: .text "color ram"
+strSound: .text "sound test"
+strScreen: .text "screen ram"
+
+sound1: .byte $11,$15,$19,$22,$19,$15,$11 // soundtest
+sound2: .byte $25,$9a,$b1,$4b,$b1,$9a,$25 //
+sound3: .byte $22,$2b,$33,$44,$33,$2b,$22 //
+sound4: .byte $4b,$34,$61,$95,$61,$34,$4b //
+sound5: .byte $44,$56,$66,$89,$66,$56,$44 //
+sound6: .byte $95,$69,$c2,$2b,$c2,$69,$95 //
+sound7: .byte $45,$11,$25 //
+sound8: .byte $00,$00,$00 //
+sound9: .byte $08,$00,$00,$09,$00,$28,$ff,$1f //
+ .byte $af //
+
+
+upBox: .byte $20,$20,$20,$20,$20,$20,$20,$20 // box upper part
+ .byte $20,$20,$20,$20,$20,$20,$22,$26
+ .byte $26,$26,$26,$26,$26,$26,$26,$26
+ .byte $26,$26,$26,$26,$26,$26,$26,$26
+ .byte $26,$26,$26,$26,$26,$26,$26,$23
+
+boxArea: .byte $20,$20,$20,$20,$20,$20,$20,$20 // box text. 4164 etc.
+ .byte $20,$20,$20,$20,$20,$20,$27,$20
+ .byte $20,$20,$20,$20,$20,$20,$20,$20
+ .byte $20,$20,$34,$31,$36,$34,$20,$20
+ .byte $20,$20,$20,$20,$20,$20,$20,$27
+ .byte $20,$20,$20,$20,$20,$20,$20,$20
+ .byte $20,$20,$20,$20,$20,$20,$27,$20
+ .byte $20,$20,$20,$20,$15,$39,$20,$20
+ .byte $20,$20,$20,$20,$20,$20,$20,$15
+ .byte $32,$31,$20,$20,$20,$20,$20,$27
+ .byte $20,$20,$20,$20,$20,$20,$20,$20
+ .byte $20,$20,$20,$20,$20,$20,$27,$20
+ .byte $20,$20,$20,$20,$15,$31,$30,$20
+ .byte $20,$20,$20,$20,$20,$20,$20,$15
+ .byte $32,$32,$20,$20,$20,$20,$20,$27
+ .byte $20,$20,$20,$20,$20,$20,$20,$20
+ .byte $20,$20,$20,$20,$20,$20,$27,$20
+ .byte $20,$20,$20,$20,$15,$31,$31,$20
+ .byte $20,$20,$20,$20,$20,$20,$20,$15
+ .byte $32,$33,$20,$20,$20,$20,$20,$27
+ .byte $20,$20,$20,$20,$20,$20,$20,$20
+ .byte $20,$20,$20,$20,$20,$20,$27,$20
+ .byte $20,$20,$20,$20,$15,$31,$32,$20
+ .byte $20,$20,$20,$20,$20,$20,$20,$15
+ .byte $32,$34,$20,$20,$20,$20,$20,$27
+ .byte $20,$20,$20,$20,$20,$20,$20,$20
+ .byte $20,$20,$20,$20,$20,$20,$27,$20
+ .byte $20,$20,$20,$20,$20,$20,$20,$20
+ .byte $20,$20,$20,$20,$20,$20,$20,$20
+ .byte $20,$20,$20,$20,$20,$20,$20,$27
+ .byte $ff
+
+boxColor: .byte $06,$06,$06,$06,$06,$06,$06,$06 //color
+ .byte $06,$06,$06,$06,$06,$06,BOX_BORDER_COLOR,$06
+ .byte $06,$06,$06,$06,$06,$06,$06,$06
+ .byte $06,$06,$06,$06,$06,$06,$06,$06
+ .byte $06,$06,$06,$06,$06,$06,$06,BOX_BORDER_COLOR
+ .byte $06,$06,$06,$06,$06,$06,$06,$06
+ .byte $06,$06,$06,$06,$06,$06,BOX_BORDER_COLOR,$06
+ .byte $06,$06,$06,$06,$06,$06,$06,$06
+ .byte $06,$06,$06,$06,$06,$06,$06,$06
+ .byte $06,$06,$06,$06,$06,$06,$06,BOX_BORDER_COLOR
+ .byte $06,$06,$06,$06,$06,$06,$06,$06
+ .byte $06,$06,$06,$06,$06,$06,BOX_BORDER_COLOR,$06
+ .byte $06,$06,$06,$06,$06,$06,$06,$06
+ .byte $06,$06,$06,$06,$06,$06,$06,$06
+ .byte $06,$06,$06,$06,$06,$06,$06,BOX_BORDER_COLOR
+ .byte $06,$06,$06,$06,$06,$06,$06,$06
+ .byte $06,$06,$06,$06,$06,$06,BOX_BORDER_COLOR,$06
+ .byte $06,$06,$06,$06,$06,$06,$06,$06
+ .byte $06,$06,$06,$06,$06,$06,$06,$06
+ .byte $06,$06,$06,$06,$06,$06,$06,BOX_BORDER_COLOR
+ .byte $06,$06,$06,$06,$06,$06,$06,$06
+ .byte $06,$06,$06,$06,$06,$06,BOX_BORDER_COLOR,$06
+ .byte $06,$06,$06,$06,$06,$06,$06,$06
+ .byte $06,$06,$06,$06,$06,$06,$06,$06
+ .byte $06,$06,$06,$06,$06,$06,$06,BOX_BORDER_COLOR
+ .byte $06,$06,$06,$06,$06,$06,$06,$06
+ .byte $06,$06,$06,$06,$06,$06,BOX_BORDER_COLOR,$06
+ .byte $06,$06,$06,$06,$06,$06,$06,$06
+ .byte $06,$06,$06,$06,$06,$06,$06,$06
+ .byte $06,$06,$06,$06,$06,$06,$06,BOX_BORDER_COLOR
+ .byte $ff
+
+lowBox: .byte $20,$20,$20,$20,$20,$20,$20,$20 //box lower part
+ .byte $20,$20,$20,$20,$20,$20,$24,$26
+ .byte $26,$26,$26,$26,$26,$26,$26,$26
+ .byte $26,$26,$26,$26,$26,$26,$26,$26
+ .byte $26,$26,$26,$26,$26,$26,$26,$25
+
+font: .byte $00,$00,$00,$00,$00,$00,$00,$00 //font
+ .byte $7e,$42,$42,$7e,$46,$46,$46,$00
+ .byte $7e,$62,$62,$7e,$62,$62,$7e,$00
+ .byte $7e,$42,$40,$40,$40,$42,$7e,$00
+ .byte $7e,$42,$42,$62,$62,$62,$7e,$00
+ .byte $7e,$60,$60,$78,$70,$70,$7e,$00
+ .byte $7e,$60,$60,$78,$70,$70,$70,$00
+ .byte $7e,$42,$40,$6e,$62,$62,$7e,$00
+ .byte $42,$42,$42,$7e,$62,$62,$62,$00
+ .byte $10,$10,$10,$18,$18,$18,$18,$00
+ .byte $04,$04,$04,$06,$06,$66,$7e,$00
+ .byte $42,$44,$48,$7e,$66,$66,$66,$00
+ .byte $40,$40,$40,$60,$60,$60,$7e,$00
+ .byte $43,$67,$5b,$43,$43,$43,$43,$00
+ .byte $e2,$d2,$ca,$c6,$c2,$c2,$c2,$00
+ .byte $7e,$42,$42,$46,$46,$46,$7e,$00
+ .byte $7e,$42,$42,$7e,$60,$60,$60,$00
+ .byte $7e,$42,$42,$62,$6a,$66,$7e,$00
+ .byte $7e,$42,$42,$7e,$68,$64,$62,$00
+ .byte $7e,$42,$40,$7e,$02,$62,$7e,$00
+ .byte $7e,$18,$18,$18,$18,$18,$18,$00
+ .byte $62,$62,$62,$62,$62,$62,$3c,$00
+ .byte $62,$62,$62,$62,$62,$24,$18,$00
+ .byte $c2,$c2,$c2,$c2,$da,$e6,$c2,$00
+ .byte $62,$62,$24,$18,$24,$62,$62,$00
+ .byte $62,$62,$62,$34,$18,$18,$18,$00
+ .byte $7f,$03,$06,$08,$10,$60,$7f,$00
+ .byte $3c,$30,$30,$30,$30,$30,$3c,$00
+ .byte $0e,$10,$30,$fe,$30,$60,$ff,$00
+ .byte $3c,$0c,$0c,$0c,$0c,$0c,$3c,$00
+ .byte $00,$18,$3c,$7e,$18,$18,$18,$18
+ .byte $00,$10,$30,$7f,$7f,$30,$10,$00
+ .byte $00,$00,$00,$00,$00,$00,$00,$00
+ .byte $0e,$0e,$60,$60,$60,$60,$0e,$0e
+ .byte $00,$00,$00,$07,$0f,$1c,$18,$18
+ .byte $00,$00,$00,$e0,$f0,$38,$18,$18
+ .byte $18,$18,$1c,$0f,$07,$00,$00,$00
+ .byte $18,$18,$38,$f0,$e0,$00,$00,$00
+ .byte $00,$00,$00,$ff,$ff,$00,$00,$00
+ .byte $18,$18,$18,$18,$18,$18,$18,$18
+ .byte $0c,$18,$30,$30,$30,$18,$0c,$00
+ .byte $30,$18,$0c,$0c,$0c,$18,$30,$00
+ .byte $00,$66,$3c,$ff,$3c,$66,$00,$00
+ .byte $00,$18,$18,$7e,$18,$18,$00,$00
+ .byte $00,$00,$00,$00,$00,$18,$18,$30
+ .byte $00,$00,$00,$7e,$00,$00,$00,$00
+ .byte $00,$00,$00,$00,$00,$18,$18,$00
+ .byte $00,$03,$06,$0c,$18,$30,$60,$00
+ .byte $7e,$42,$42,$42,$42,$42,$7e,$00
+ .byte $30,$30,$10,$10,$3c,$3c,$3c,$00
+ .byte $7e,$02,$02,$7e,$40,$40,$7e,$00
+ .byte $7e,$02,$02,$7e,$06,$06,$7e,$00
+ .byte $60,$60,$60,$66,$7e,$06,$06,$00
+ .byte $7e,$40,$40,$7e,$02,$02,$7e,$00
+ .byte $78,$48,$40,$7e,$42,$42,$7e,$00
+ .byte $7e,$42,$04,$08,$08,$08,$08,$00
+ .byte $3c,$24,$24,$3c,$66,$66,$7e,$00
+ .byte $7e,$42,$42,$7e,$06,$06,$06,$00
+prefill:
+
+
+.fill ($ffff-prefill-5),$aa
+
+ *=$fffa
+ .word $e000
+ *=$fffc
+ .word $e000
+ *=$fffe
+ .word $e000
+
+//---------------------------------------
+//eof
\ No newline at end of file