From 7ddccad162bdda095d0eaea11cbb7eceecfcce4c Mon Sep 17 00:00:00 2001 From: stid Date: Tue, 10 Mar 2020 00:12:35 -0700 Subject: [PATCH] diagnostic port --- core/bin/boot.dbg | 1462 +++++++++++++++++++++++++++++++++++++++++++ main.asm | 2 +- makefile | 1 + progs/bin/test.crt | Bin 8272 -> 0 bytes progs/diag.asm | 1163 ---------------------------------- progs/diag/diag.asm | 1297 ++++++++++++++++++++++++++++++++++++++ 6 files changed, 2761 insertions(+), 1164 deletions(-) create mode 100644 core/bin/boot.dbg delete mode 100644 progs/bin/test.crt delete mode 100644 progs/diag.asm create mode 100644 progs/diag/diag.asm 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 7c34008f4b04d6759835da7adbbd28a930a1a580..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8272 zcmeHMZ)_9i8Gr74zVpA>7bj_52K2@PEJE!}U@g)nl-*dm`d4Ik;pOntWc59vAc=F(rPjr2Aucm1L&@SMC{%9TC``v?O z@BYWm@Dm3BG?ma<(BN3AG&pH2_6o-1y%72BoH3bN>UH+H3`jY8-F=>vkc9KjlkRcz zUkk1UPgeafC1w7xs4LT%5AisYHUF7{KC#c10z=b5(!s8Stb=0UVN!=F9r8L9EORck zJ#*I5gR&v&!94Lm=BhPODk}Q-Wh?UQS&T2MNOxi+brVS#voR$UJE24k@cH<9tC&A63vD5?g%EAe&Hz#Bbr^!MHMH z__5Usk)m^x8%Mb$3ioK!%&)RxztFjuv z0=YGPEFAYy5=+jiw<8y35!OuhMKjfugv|0{0)zyJ39uzVN`O59asreDI1=DYfGYv+ z1b7lqmjG`9eBR|tEiVqY+%@efM`UQezvT{k3im!mPv+h-dUo!8fS$y?Yv|dycM&}iy_7I$ z2xW=-Q$4GDU6HLSS5YBbv_;O&ugOwQS07&|+>!aJr61szOhaaQG3ieLjGMQs_2lU( z0JCA-yp>g_3?F++GTiKGDWcBN1`UxC0wxTJ{aA`zx}I`o+ARIp8ZF=l`k%B@AXG>T zNZL!JeNv=hg%lG4CXn=Z71EzrdXkeuQtETQ;G)|yoT9-`I&tKzd1v@M|L`_t)urx} z&IP9_F1UtV6Am+n9Y(0bD^j#FG=>6($p5OO;n0rE0ZSjR@K2Wc%N^Vqw^h}l#W&-& zOzdG*_n0={!X9r^k9V+#+ah5w6fndd@A5q;nXsi7D?J?L9;+MZS=+z{+`#Jes+mXT zJH&inP*FR_CCVx9NwrPyh%ZLGd}Ft#sb?^V4Dm5Eyp=rPq3fh27>Dg z%wJ#)g-H4aUTQzE^ne|obVegSV(^Z5FlV$ed(Ox*nL>Zg5W^`s^K**{xy&yt2D$EY z=|PK$xwLLETQ2=ai%GfDVdIGQ+5(;+;aTWq&C6x70MWKF4>8u|km*+zbL29=v6xa} za&jgYXL46Dx$j|mxXjc*OpV0!lEr+v%n6HmD@-b9s^?7pDkj`SWv1?PFP;wCBJ($* z6HxS>>kpqEPL}w6eXDyoN>A{$FNYELbij3@&QMuFG3wZ~5;);PAu9o*Ej>xWY-N8{ z26Bq=2zy%@aZM*hQ)BNa1MgC1QWL(M*)S$JebdP~-rAC23oE zF<4i09KJVP5=6(i3hGZ8ct_@Yy_ zwru;1^`)vJbhlT9yLaM-R#r8zTG#Zo6xF`HSs4J}(p!qW{gl%;7@D=aqi0|9C z58{Up(=Wt3+S}VZ$aWm&aWs1D=uwQhJxciVl<&avumDt54d4Pvl4LoC`L1w07K;J0 zM5EC-bpGr|ow#8Bt?Zj)V`IdN?KnSDMtPqjcplBs{nNw59~Ws3Vntr;fh$zD%>h7; zvHZdq#?66d?2q7Xs_U`I4mH{Xp&+dgc-7$DV6+4w53LYDAjBy_4fgZ|`RhI3zt@XX zM7>@N6yHW9!q@)d9%{YOr(h5W>?zKo#Z@Zdfe>1r0JaHu0RKGb1H?k5P>dH~A1cQc zAOParFUJ5j8O!;;NkRw)RW%d}L0lB$?d`a4w6Yur94dwmP!dycEZj~Kp+1rW7lfLd zL$Qi(c-_HpZPgU0DNs|Ora(=BngTTiY6{d8s3}lWpr$}gftms}1!@Y^6sRfiKPZ6z I{>Ptx17&?@qyPW_ 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