support ;;{...};; bitmap header for assembler
This commit is contained in:
parent
2768819117
commit
1675ab628e
|
@ -15,6 +15,7 @@
|
||||||
},
|
},
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"test": "npm run test-node && npm run test-browser",
|
"test": "npm run test-node && npm run test-browser",
|
||||||
|
"test-one": "mocha --recursive --timeout 20000",
|
||||||
"test-node": "mocha --recursive --timeout 20000 test/cli",
|
"test-node": "mocha --recursive --timeout 20000 test/cli",
|
||||||
"test-profile": "mocha --recursive --timeout 60000 --prof test/cli",
|
"test-profile": "mocha --recursive --timeout 60000 --prof test/cli",
|
||||||
"test-browser": "mocha-phantomjs ./testemu.html"
|
"test-browser": "mocha-phantomjs ./testemu.html"
|
||||||
|
|
12
pixels.html
12
pixels.html
|
@ -24,9 +24,9 @@ body {
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div id="notebook">
|
<div id="notebook">
|
||||||
<div id="maineditor" style="width:50%;height:50%">
|
<div id="thumbnaildiv" style="float:right;margin-top:20%;transform:scale(2);margin-right:10%">
|
||||||
</div>
|
</div>
|
||||||
<div id="thumbnaildiv" style="float:right;transform:scale(2);margin-right:10%">
|
<div id="maineditor" style="height:100%">
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
@ -46,15 +46,15 @@ if (window.self === window.top) {
|
||||||
var fmt = {w:8,h:8,bpp:1,count:8};
|
var fmt = {w:8,h:8,bpp:1,count:8};
|
||||||
var palette = [0xff000000, 0xffffffff];
|
var palette = [0xff000000, 0xffffffff];
|
||||||
*/
|
*/
|
||||||
/*
|
|
||||||
var paldatastr = " 0x00, 0x03, 0x19, 0x50, 0x52, 0x07, 0x1f, 0x37, 0xe0, 0xa4, 0xfd, 0xff, 0x38, 0x70, 0x7f, 0xf8, ";
|
var paldatastr = " 0x00, 0x03, 0x19, 0x50, 0x52, 0x07, 0x1f, 0x37, 0xe0, 0xa4, 0xfd, 0xff, 0x38, 0x70, 0x7f, 0xf8, ";
|
||||||
var fmt = {w:14,h:16,bpp:4,brev:1};
|
var fmt = {w:14,h:16,bpp:4,brev:1};
|
||||||
fmt = {w:14,h:8,bpp:4,brev:1,count:2};
|
//fmt = {w:14,h:8,bpp:4,brev:1,count:2};
|
||||||
var datastr = "0x00,0x00,0xef,0xef,0xe0,0x00,0x00, 0x00,0xee,0xee,0xfe,0xee,0xe0,0x00, 0x0e,0xed,0xef,0xef,0xed,0xee,0x00, 0x0e,0xee,0xdd,0xdd,0xde,0xee,0x00, 0x0e,0xee,0xed,0xde,0xee,0xee,0x00, 0x00,0xee,0xee,0xde,0xee,0xe0,0x00, 0x00,0xee,0xee,0xde,0xee,0xe0,0x00, 0x00,0x00,0xed,0xdd,0xe0,0x00,0x0d, 0xdd,0xdd,0xee,0xee,0xed,0xdd,0xd0, 0x0d,0xee,0xee,0xee,0xee,0xee,0x00, 0x0e,0xe0,0xee,0xee,0xe0,0xee,0x00, 0x0e,0xe0,0xee,0xee,0xe0,0xee,0x00, 0x0e,0xe0,0xdd,0xdd,0xd0,0xde,0x00, 0x0d,0x00,0xee,0x0e,0xe0,0x0d,0x00, 0x00,0x00,0xed,0x0e,0xe0,0x00,0x00, 0x00,0x0d,0xdd,0x0d,0xdd,0x00,0x18,";
|
var datastr = "0x00,0x00,0xef,0xef,0xe0,0x00,0x00, 0x00,0xee,0xee,0xfe,0xee,0xe0,0x00, 0x0e,0xed,0xef,0xef,0xed,0xee,0x00, 0x0e,0xee,0xdd,0xdd,0xde,0xee,0x00, 0x0e,0xee,0xed,0xde,0xee,0xee,0x00, 0x00,0xee,0xee,0xde,0xee,0xe0,0x00, 0x00,0xee,0xee,0xde,0xee,0xe0,0x00, 0x00,0x00,0xed,0xdd,0xe0,0x00,0x0d, 0xdd,0xdd,0xee,0xee,0xed,0xdd,0xd0, 0x0d,0xee,0xee,0xee,0xee,0xee,0x00, 0x0e,0xe0,0xee,0xee,0xe0,0xee,0x00, 0x0e,0xe0,0xee,0xee,0xe0,0xee,0x00, 0x0e,0xe0,0xdd,0xdd,0xd0,0xde,0x00, 0x0d,0x00,0xee,0x0e,0xe0,0x0d,0x00, 0x00,0x00,0xed,0x0e,0xe0,0x00,0x00, 0x00,0x0d,0xdd,0x0d,0xdd,0x00,0x18,";
|
||||||
*/
|
/*
|
||||||
var datastr = "0x00,0xfe,0x82,0x82,0x82,0xfe,0xfe,0x00,0x00,0x00,0xfe,0xfe,0xc0,0x00,0x00,0x00,0x00,0xf2,0xf2,0x92,0x92,0x9e,0x9e,0x00,0x00,0xfe,0xfe,0x92,0x92,0x82,0x00,0x00,0x08,0xfe,0xfe,0x88,0x88,0xf8,0xf8,0x00,0x00,0x9e,0x9e,0x92,0x92,0xf2,0xf2,0x00,0x00,0x9e,0x92,0x92,0x92,0xfe,0xfe,0x00,0x00,0xf0,0xf0,0x9e,0x9e,0x80,0x80,0x00,0x00,0xfe,0x92,0x92,0x92,0xfe,0xfe,0x00,0x00,0xfe,0x92,0x92,0x92,0xf2,0xf0,0x00,0x00,0xfe,0xc8,0x88,0x88,0xfe,0xfe,0x00,0x00,0xee,0x92,0x92,0x92,0xfe,0xfe,0x00,0x00,0x82,0x82,0x82,0x86,0xfe,0xfe,0x00,0x00,0xfc,0x86,0x82,0x82,0xfe,0xfe,0x00,0x00,0x82,0x92,0x92,0x92,0xfe,0xfe,0x00,0x00,0x80,0x90,0x90,0x90,0xfe,0xfe,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xfe,0xc8,0x88,0x88,0xfe,0xfe,0x00,0x00,0xee,0x92,0x92,0x92,0xfe,0xfe,0x00,0x00,0x82,0x82,0x82,0x86,0xfe,0xfe,0x00,0x00,0xfc,0x86,0x82,0x82,0xfe,0xfe,0x00,0x00,0x82,0x92,0x92,0x92,0xfe,0xfe,0x00,0x80,0x90,0x90,0x90,0x90,0xfe,0xfe,0x00,0x00,0x9e,0x92,0x82,0x82,0xfe,0xfe,0x00,0xfe,0xfe,0x10,0x10,0x10,0xfe,0xfe,0x00,0x00,0x00,0xbe,0xbe,0x00,0x00,0x00,0x00,0xfc,0xfe,0x06,0x02,0x02,0x02,0x00,0x00,0x00,0x82,0x44,0x28,0x18,0xfe,0xfe,0x00,0x02,0x02,0x02,0x06,0xfe,0xfe,0x00,0x00,0xfe,0x40,0x20,0x18,0x20,0xfe,0xfe,0x00,0xfe,0x0c,0x08,0x10,0x20,0xfe,0xfe,0x00,0xfe,0x82,0x82,0x82,0x86,0xfe,0xfe,0x00,0x00,0xfe,0x82,0x82,0x82,0xfe,0xfe,0x00,0x00,0x00,0xfe,0xfe,0xc0,0x00,0x00,0x00,0x00,0xf2,0xf2,0x92,0x92,0x9e,0x9e,0x00,0x00,0xfe,0xfe,0x92,0x92,0x82,0x00,0x00,0x08,0xfe,0xfe,0x88,0x88,0xf8,0xf8,0x00,0x00,0x9e,0x9e,0x92,0x92,0xf2,0xf2,0x00,0x00,0x9e,0x92,0x92,0x92,0xfe,0xfe,0x00,0x00,0xf0,0xf0,0x9e,0x9e,0x80,0x80,0x00,0x00,0xfe,0x92,0x92,0x92,0xfe,0xfe,0x00,0x00,0xfe,0x92,0x92,0x92,0xf2,0xf0,0x00,0x00,0xfe,0xc8,0x88,0x88,0xfe,0xfe,0x00,0x00,0xee,0x92,0x92,0x92,0xfe,0xfe,0x00,0x00,0x82,0x82,0x82,0x86,0xfe,0xfe,0x00,0x00,0xfc,0x86,0x82,0x82,0xfe,0xfe,0x00,0x00,0x82,0x92,0x92,0x92,0xfe,0xfe,0x00,0x00,0x80,0x90,0x90,0x90,0xfe,0xfe,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xfe,0xc8,0x88,0x88,0xfe,0xfe,0x00,0x00,0xee,0x92,0x92,0x92,0xfe,0xfe,0x00,0x00,0x82,0x82,0x82,0x86,0xfe,0xfe,0x00,0x00,0xfc,0x86,0x82,0x82,0xfe,0xfe,0x00,0x00,0x82,0x92,0x92,0x92,0xfe,0xfe,0x00,0x80,0x90,0x90,0x90,0x90,0xfe,0xfe,0x00,0x00,0x9e,0x92,0x82,0x82,0xfe,0xfe,0x00,0xfe,0xfe,0x10,0x10,0x10,0xfe,0xfe,0x00,0x00,0x00,0xbe,0xbe,0x00,0x00,0x00,0x00,0xfc,0xfe,0x06,0x02,0x02,0x02,0x00,0x00,0x00,0x82,0x44,0x28,0x18,0xfe,0xfe,0x00,0x02,0x02,0x02,0x06,0xfe,0xfe,0x00,0x00,0xfe,0x40,0x20,0x18,0x20,0xfe,0xfe,0x00,0xfe,0x0c,0x08,0x10,0x20,0xfe,0xfe,0x00,0xfe,0x82,0x82,0x82,0x86,0xfe,0xfe,0x00,";
|
var datastr = "$00,0xfe,0x82,0x82,0x82,0xfe,0xfe,0x00,0x00,0x00,0xfe,0xfe,0xc0,0x00,0x00,0x00,0x00,0xf2,0xf2,0x92,0x92,0x9e,0x9e,0x00,0x00,0xfe,0xfe,0x92,0x92,0x82,0x00,0x00,0x08,0xfe,0xfe,0x88,0x88,0xf8,0xf8,0x00,0x00,0x9e,0x9e,0x92,0x92,0xf2,0xf2,0x00,0x00,0x9e,0x92,0x92,0x92,0xfe,0xfe,0x00,0x00,0xf0,0xf0,0x9e,0x9e,0x80,0x80,0x00,0x00,0xfe,0x92,0x92,0x92,0xfe,0xfe,0x00,0x00,0xfe,0x92,0x92,0x92,0xf2,0xf0,0x00,0x00,0xfe,0xc8,0x88,0x88,0xfe,0xfe,0x00,0x00,0xee,0x92,0x92,0x92,0xfe,0xfe,0x00,0x00,0x82,0x82,0x82,0x86,0xfe,0xfe,0x00,0x00,0xfc,0x86,0x82,0x82,0xfe,0xfe,0x00,0x00,0x82,0x92,0x92,0x92,0xfe,0xfe,0x00,0x00,0x80,0x90,0x90,0x90,0xfe,0xfe,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xfe,0xc8,0x88,0x88,0xfe,0xfe,0x00,0x00,0xee,0x92,0x92,0x92,0xfe,0xfe,0x00,0x00,0x82,0x82,0x82,0x86,0xfe,0xfe,0x00,0x00,0xfc,0x86,0x82,0x82,0xfe,0xfe,0x00,0x00,0x82,0x92,0x92,0x92,0xfe,0xfe,0x00,0x80,0x90,0x90,0x90,0x90,0xfe,0xfe,0x00,0x00,0x9e,0x92,0x82,0x82,0xfe,0xfe,0x00,0xfe,0xfe,0x10,0x10,0x10,0xfe,0xfe,0x00,0x00,0x00,0xbe,0xbe,0x00,0x00,0x00,0x00,0xfc,0xfe,0x06,0x02,0x02,0x02,0x00,0x00,0x00,0x82,0x44,0x28,0x18,0xfe,0xfe,0x00,0x02,0x02,0x02,0x06,0xfe,0xfe,0x00,0x00,0xfe,0x40,0x20,0x18,0x20,0xfe,0xfe,0x00,0xfe,0x0c,0x08,0x10,0x20,0xfe,0xfe,0x00,0xfe,0x82,0x82,0x82,0x86,0xfe,0xfe,0x00,0x00,0xfe,0x82,0x82,0x82,0xfe,0xfe,0x00,0x00,0x00,0xfe,0xfe,0xc0,0x00,0x00,0x00,0x00,0xf2,0xf2,0x92,0x92,0x9e,0x9e,0x00,0x00,0xfe,0xfe,0x92,0x92,0x82,0x00,0x00,0x08,0xfe,0xfe,0x88,0x88,0xf8,0xf8,0x00,0x00,0x9e,0x9e,0x92,0x92,0xf2,0xf2,0x00,0x00,0x9e,0x92,0x92,0x92,0xfe,0xfe,0x00,0x00,0xf0,0xf0,0x9e,0x9e,0x80,0x80,0x00,0x00,0xfe,0x92,0x92,0x92,0xfe,0xfe,0x00,0x00,0xfe,0x92,0x92,0x92,0xf2,0xf0,0x00,0x00,0xfe,0xc8,0x88,0x88,0xfe,0xfe,0x00,0x00,0xee,0x92,0x92,0x92,0xfe,0xfe,0x00,0x00,0x82,0x82,0x82,0x86,0xfe,0xfe,0x00,0x00,0xfc,0x86,0x82,0x82,0xfe,0xfe,0x00,0x00,0x82,0x92,0x92,0x92,0xfe,0xfe,0x00,0x00,0x80,0x90,0x90,0x90,0xfe,0xfe,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xfe,0xc8,0x88,0x88,0xfe,0xfe,0x00,0x00,0xee,0x92,0x92,0x92,0xfe,0xfe,0x00,0x00,0x82,0x82,0x82,0x86,0xfe,0xfe,0x00,0x00,0xfc,0x86,0x82,0x82,0xfe,0xfe,0x00,0x00,0x82,0x92,0x92,0x92,0xfe,0xfe,0x00,0x80,0x90,0x90,0x90,0x90,0xfe,0xfe,0x00,0x00,0x9e,0x92,0x82,0x82,0xfe,0xfe,0x00,0xfe,0xfe,0x10,0x10,0x10,0xfe,0xfe,0x00,0x00,0x00,0xbe,0xbe,0x00,0x00,0x00,0x00,0xfc,0xfe,0x06,0x02,0x02,0x02,0x00,0x00,0x00,0x82,0x44,0x28,0x18,0xfe,0xfe,0x00,0x02,0x02,0x02,0x06,0xfe,0xfe,0x00,0x00,0xfe,0x40,0x20,0x18,0x20,0xfe,0xfe,0x00,0xfe,0x0c,0x08,0x10,0x20,0xfe,0xfe,0x00,0xfe,0x82,0x82,0x82,0x86,0xfe,0xfe,0x00,";
|
||||||
var fmt = {w:8,h:8,bpp:1,np:2,pofs:0x100,count:32,xform:"rotate(90deg) scaleX(-1)"};
|
var fmt = {w:8,h:8,bpp:1,np:2,pofs:0x100,count:32,xform:"rotate(90deg) scaleX(-1)"};
|
||||||
var paldatastr = "0x00,0x30,0x4f,0xff,0x00,0xf0,0xc0,0x7f, 0x00,0xc0,0x04,0x1f,0x00,0xd0,0xd0,0x0f, 0x00,0xc0,0xc0,0x0f,0x00,0x04,0x04,0x0f, 0x00,0xff,0x0f,0xf0,0x00,0x7f,0x0f,0xdf,";
|
var paldatastr = "0x00,0x30,0x4f,0xff,0x00,0xf0,0xc0,0x7f, 0x00,0xc0,0x04,0x1f,0x00,0xd0,0xd0,0x0f, 0x00,0xc0,0xc0,0x0f,0x00,0x04,0x04,0x0f, 0x00,0xff,0x0f,0xf0,0x00,0x7f,0x0f,0xdf,";
|
||||||
|
*/
|
||||||
pixelEditorReceiveMessage({data:{fmt:fmt,bytestr:datastr,palfmt:{pal:332,n:16},palstr:paldatastr}});
|
pixelEditorReceiveMessage({data:{fmt:fmt,bytestr:datastr,palfmt:{pal:332,n:16},palstr:paldatastr}});
|
||||||
console.log(postToParentWindow({save:true}));
|
console.log(postToParentWindow({save:true}));
|
||||||
}
|
}
|
||||||
|
|
|
@ -655,65 +655,17 @@ ColorFrame0
|
||||||
|
|
||||||
; Bitmap pattern for digits
|
; Bitmap pattern for digits
|
||||||
|
|
||||||
DigitsBitmap .byte $0E ; | XXX | $F5C5 Leading zero is not drawn
|
DigitsBitmap ;;{w:8,h:6,count:10,brev:1};;
|
||||||
.byte $0A ; | X X | $F5C6 because it's never used.
|
.byte $EE,$AA,$AA,$AA,$EE,$00
|
||||||
.byte $0A ; | X X | $F5C7
|
.byte $22,$22,$22,$22,$22,$00
|
||||||
.byte $0A ; | X X | $F5C8
|
.byte $EE,$22,$EE,$88,$EE,$00
|
||||||
.byte $0E ; | XXX | $F5C9
|
.byte $EE,$22,$66,$22,$EE,$00
|
||||||
|
.byte $AA,$AA,$EE,$22,$22,$00
|
||||||
.byte $22 ; | X X | $F5CA
|
.byte $EE,$88,$EE,$22,$EE,$00
|
||||||
.byte $22 ; | X X | $F5CB
|
.byte $EE,$88,$EE,$AA,$EE,$00
|
||||||
.byte $22 ; | X X | $F5CC
|
.byte $EE,$22,$22,$22,$22,$00
|
||||||
.byte $22 ; | X X | $F5CD
|
.byte $EE,$AA,$EE,$AA,$EE,$00
|
||||||
.byte $22 ; | X X | $F5CE
|
.byte $EE,$AA,$EE,$22,$EE,$00
|
||||||
|
|
||||||
.byte $EE ; |XXX XXX | $F5CF
|
|
||||||
.byte $22 ; | X X | $F5D0
|
|
||||||
.byte $EE ; |XXX XXX | $F5D1
|
|
||||||
.byte $88 ; |X X | $F5D2
|
|
||||||
.byte $EE ; |XXX XXX | $F5D3
|
|
||||||
|
|
||||||
.byte $EE ; |XXX XXX | $F5D4
|
|
||||||
.byte $22 ; | X X | $F5D5
|
|
||||||
.byte $66 ; | XX XX | $F5D6
|
|
||||||
.byte $22 ; | X X | $F5D7
|
|
||||||
.byte $EE ; |XXX XXX | $F5D8
|
|
||||||
|
|
||||||
.byte $AA ; |X X X X | $F5D9
|
|
||||||
.byte $AA ; |X X X X | $F5DA
|
|
||||||
.byte $EE ; |XXX XXX | $F5DB
|
|
||||||
.byte $22 ; | X X | $F5DC
|
|
||||||
.byte $22 ; | X X | $F5DD
|
|
||||||
|
|
||||||
.byte $EE ; |XXX XXX | $F5DE
|
|
||||||
.byte $88 ; |X X | $F5DF
|
|
||||||
.byte $EE ; |XXX XXX | $F5E0
|
|
||||||
.byte $22 ; | X X | $F5E1
|
|
||||||
.byte $EE ; |XXX XXX | $F5E2
|
|
||||||
|
|
||||||
.byte $EE ; |XXX XXX | $F5E3
|
|
||||||
.byte $88 ; |X X | $F5E4
|
|
||||||
.byte $EE ; |XXX XXX | $F5E5
|
|
||||||
.byte $AA ; |X X X X | $F5E6
|
|
||||||
.byte $EE ; |XXX XXX | $F5E7
|
|
||||||
|
|
||||||
.byte $EE ; |XXX XXX | $F5E8
|
|
||||||
.byte $22 ; | X X | $F5E9
|
|
||||||
.byte $22 ; | X X | $F5EA
|
|
||||||
.byte $22 ; | X X | $F5EB
|
|
||||||
.byte $22 ; | X X | $F5EC
|
|
||||||
|
|
||||||
.byte $EE ; |XXX XXX | $F5ED
|
|
||||||
.byte $AA ; |X X X X | $F5EE
|
|
||||||
.byte $EE ; |XXX XXX | $F5EF
|
|
||||||
.byte $AA ; |X X X X | $F5F0
|
|
||||||
.byte $EE ; |XXX XXX | $F5F1
|
|
||||||
|
|
||||||
.byte $EE ; |XXX XXX | $F5F2
|
|
||||||
.byte $AA ; |X X X X | $F5F3
|
|
||||||
.byte $EE ; |XXX XXX | $F5F4
|
|
||||||
.byte $22 ; | X X | $F5F5
|
|
||||||
.byte $EE ; |XXX XXX | $F5F6
|
|
||||||
|
|
||||||
; Playfield bitmasks for all 40 brick columns
|
; Playfield bitmasks for all 40 brick columns
|
||||||
PFMaskTable
|
PFMaskTable
|
||||||
|
|
|
@ -151,75 +151,17 @@ MOVEMENT
|
||||||
.byte $20 ; -2 pixels
|
.byte $20 ; -2 pixels
|
||||||
|
|
||||||
; Bitmap pattern for digits
|
; Bitmap pattern for digits
|
||||||
NUMBERS .byte $0E ; | XXX | $F5C5 Leading zero is not drawn
|
NUMBERS ;;{w:8,h:6,count:10,brev:1};;
|
||||||
.byte $0A ; | X X | $F5C6 because it's never used.
|
.byte $EE,$AA,$AA,$AA,$EE,$00
|
||||||
.byte $0A ; | X X | $F5C7
|
.byte $22,$22,$22,$22,$22,$00
|
||||||
.byte $0A ; | X X | $F5C8
|
.byte $EE,$22,$EE,$88,$EE,$00
|
||||||
.byte $0E ; | XXX | $F5C9
|
.byte $EE,$22,$66,$22,$EE,$00
|
||||||
.byte $00
|
.byte $AA,$AA,$EE,$22,$22,$00
|
||||||
|
.byte $EE,$88,$EE,$22,$EE,$00
|
||||||
.byte $22 ; | X X | $F5CA
|
.byte $EE,$88,$EE,$AA,$EE,$00
|
||||||
.byte $22 ; | X X | $F5CB
|
.byte $EE,$22,$22,$22,$22,$00
|
||||||
.byte $22 ; | X X | $F5CC
|
.byte $EE,$AA,$EE,$AA,$EE,$00
|
||||||
.byte $22 ; | X X | $F5CD
|
.byte $EE,$AA,$EE,$22,$EE,$00
|
||||||
.byte $22 ; | X X | $F5CE
|
|
||||||
.byte $00
|
|
||||||
|
|
||||||
.byte $EE ; |XXX XXX | $F5CF
|
|
||||||
.byte $22 ; | X X | $F5D0
|
|
||||||
.byte $EE ; |XXX XXX | $F5D1
|
|
||||||
.byte $88 ; |X X | $F5D2
|
|
||||||
.byte $EE ; |XXX XXX | $F5D3
|
|
||||||
.byte $00
|
|
||||||
|
|
||||||
.byte $EE ; |XXX XXX | $F5D4
|
|
||||||
.byte $22 ; | X X | $F5D5
|
|
||||||
.byte $66 ; | XX XX | $F5D6
|
|
||||||
.byte $22 ; | X X | $F5D7
|
|
||||||
.byte $EE ; |XXX XXX | $F5D8
|
|
||||||
.byte $00
|
|
||||||
|
|
||||||
.byte $AA ; |X X X X | $F5D9
|
|
||||||
.byte $AA ; |X X X X | $F5DA
|
|
||||||
.byte $EE ; |XXX XXX | $F5DB
|
|
||||||
.byte $22 ; | X X | $F5DC
|
|
||||||
.byte $22 ; | X X | $F5DD
|
|
||||||
.byte $00
|
|
||||||
|
|
||||||
.byte $EE ; |XXX XXX | $F5DE
|
|
||||||
.byte $88 ; |X X | $F5DF
|
|
||||||
.byte $EE ; |XXX XXX | $F5E0
|
|
||||||
.byte $22 ; | X X | $F5E1
|
|
||||||
.byte $EE ; |XXX XXX | $F5E2
|
|
||||||
.byte $00
|
|
||||||
|
|
||||||
.byte $EE ; |XXX XXX | $F5E3
|
|
||||||
.byte $88 ; |X X | $F5E4
|
|
||||||
.byte $EE ; |XXX XXX | $F5E5
|
|
||||||
.byte $AA ; |X X X X | $F5E6
|
|
||||||
.byte $EE ; |XXX XXX | $F5E7
|
|
||||||
.byte $00
|
|
||||||
|
|
||||||
.byte $EE ; |XXX XXX | $F5E8
|
|
||||||
.byte $22 ; | X X | $F5E9
|
|
||||||
.byte $22 ; | X X | $F5EA
|
|
||||||
.byte $22 ; | X X | $F5EB
|
|
||||||
.byte $22 ; | X X | $F5EC
|
|
||||||
.byte $00
|
|
||||||
|
|
||||||
.byte $EE ; |XXX XXX | $F5ED
|
|
||||||
.byte $AA ; |X X X X | $F5EE
|
|
||||||
.byte $EE ; |XXX XXX | $F5EF
|
|
||||||
.byte $AA ; |X X X X | $F5F0
|
|
||||||
.byte $EE ; |XXX XXX | $F5F1
|
|
||||||
.byte $00
|
|
||||||
|
|
||||||
.byte $EE ; |XXX XXX | $F5F2
|
|
||||||
.byte $AA ; |X X X X | $F5F3
|
|
||||||
.byte $EE ; |XXX XXX | $F5F4
|
|
||||||
.byte $22 ; | X X | $F5F5
|
|
||||||
.byte $EE ; |XXX XXX | $F5F6
|
|
||||||
.byte $00
|
|
||||||
|
|
||||||
; Epilogue
|
; Epilogue
|
||||||
org $fffc
|
org $fffc
|
||||||
|
|
|
@ -131,67 +131,18 @@ GetBCDBitmap subroutine
|
||||||
org $FF00
|
org $FF00
|
||||||
|
|
||||||
; Bitmap pattern for digits
|
; Bitmap pattern for digits
|
||||||
DigitsBitmap
|
DigitsBitmap ;;{w:8,h:6,count:10,brev:1};;
|
||||||
.byte $0E ; | XXX |
|
.byte $EE,$AA,$AA,$AA,$EE,$00
|
||||||
.byte $0A ; | X X |
|
.byte $22,$22,$22,$22,$22,$00
|
||||||
.byte $0A ; | X X |
|
.byte $EE,$22,$EE,$88,$EE,$00
|
||||||
.byte $0A ; | X X |
|
.byte $EE,$22,$66,$22,$EE,$00
|
||||||
.byte $0E ; | XXX |
|
.byte $AA,$AA,$EE,$22,$22,$00
|
||||||
|
.byte $EE,$88,$EE,$22,$EE,$00
|
||||||
.byte $22 ; | X X |
|
.byte $EE,$88,$EE,$AA,$EE,$00
|
||||||
.byte $22 ; | X X |
|
.byte $EE,$22,$22,$22,$22,$00
|
||||||
.byte $22 ; | X X |
|
.byte $EE,$AA,$EE,$AA,$EE,$00
|
||||||
.byte $22 ; | X X |
|
.byte $EE,$AA,$EE,$22,$EE,$00
|
||||||
.byte $22 ; | X X |
|
|
||||||
|
|
||||||
.byte $EE ; |XXX XXX |
|
|
||||||
.byte $22 ; | X X |
|
|
||||||
.byte $EE ; |XXX XXX |
|
|
||||||
.byte $88 ; |X X |
|
|
||||||
.byte $EE ; |XXX XXX |
|
|
||||||
|
|
||||||
.byte $EE ; |XXX XXX |
|
|
||||||
.byte $22 ; | X X |
|
|
||||||
.byte $66 ; | XX XX |
|
|
||||||
.byte $22 ; | X X |
|
|
||||||
.byte $EE ; |XXX XXX |
|
|
||||||
|
|
||||||
.byte $AA ; |X X X X |
|
|
||||||
.byte $AA ; |X X X X |
|
|
||||||
.byte $EE ; |XXX XXX |
|
|
||||||
.byte $22 ; | X X |
|
|
||||||
.byte $22 ; | X X |
|
|
||||||
|
|
||||||
.byte $EE ; |XXX XXX |
|
|
||||||
.byte $88 ; |X X |
|
|
||||||
.byte $EE ; |XXX XXX |
|
|
||||||
.byte $22 ; | X X |
|
|
||||||
.byte $EE ; |XXX XXX |
|
|
||||||
|
|
||||||
.byte $EE ; |XXX XXX |
|
|
||||||
.byte $88 ; |X X |
|
|
||||||
.byte $EE ; |XXX XXX |
|
|
||||||
.byte $AA ; |X X X X |
|
|
||||||
.byte $EE ; |XXX XXX |
|
|
||||||
|
|
||||||
.byte $EE ; |XXX XXX |
|
|
||||||
.byte $22 ; | X X |
|
|
||||||
.byte $22 ; | X X |
|
|
||||||
.byte $22 ; | X X |
|
|
||||||
.byte $22 ; | X X |
|
|
||||||
|
|
||||||
.byte $EE ; |XXX XXX |
|
|
||||||
.byte $AA ; |X X X X |
|
|
||||||
.byte $EE ; |XXX XXX |
|
|
||||||
.byte $AA ; |X X X X |
|
|
||||||
.byte $EE ; |XXX XXX |
|
|
||||||
|
|
||||||
.byte $EE ; |XXX XXX |
|
|
||||||
.byte $AA ; |X X X X |
|
|
||||||
.byte $EE ; |XXX XXX |
|
|
||||||
.byte $22 ; | X X |
|
|
||||||
.byte $EE ; |XXX XXX |
|
|
||||||
|
|
||||||
; Epilogue
|
; Epilogue
|
||||||
org $fffc
|
org $fffc
|
||||||
.word Start
|
.word Start
|
||||||
|
|
|
@ -98,75 +98,17 @@ lvover sta WSYNC
|
||||||
|
|
||||||
; Bitmap pattern for digits
|
; Bitmap pattern for digits
|
||||||
|
|
||||||
NUMBERS .byte $0E ; | XXX | $F5C5 Leading zero is not drawn
|
NUMBERS ;;{w:8,h:6,count:10,brev:1};;
|
||||||
.byte $0A ; | X X | $F5C6 because it's never used.
|
.byte $EE,$AA,$AA,$AA,$EE,$00
|
||||||
.byte $0A ; | X X | $F5C7
|
.byte $22,$22,$22,$22,$22,$00
|
||||||
.byte $0A ; | X X | $F5C8
|
.byte $EE,$22,$EE,$88,$EE,$00
|
||||||
.byte $0E ; | XXX | $F5C9
|
.byte $EE,$22,$66,$22,$EE,$00
|
||||||
.byte $00
|
.byte $AA,$AA,$EE,$22,$22,$00
|
||||||
|
.byte $EE,$88,$EE,$22,$EE,$00
|
||||||
.byte $22 ; | X X | $F5CA
|
.byte $EE,$88,$EE,$AA,$EE,$00
|
||||||
.byte $22 ; | X X | $F5CB
|
.byte $EE,$22,$22,$22,$22,$00
|
||||||
.byte $22 ; | X X | $F5CC
|
.byte $EE,$AA,$EE,$AA,$EE,$00
|
||||||
.byte $22 ; | X X | $F5CD
|
.byte $EE,$AA,$EE,$22,$EE,$00
|
||||||
.byte $22 ; | X X | $F5CE
|
|
||||||
.byte $00
|
|
||||||
|
|
||||||
.byte $EE ; |XXX XXX | $F5CF
|
|
||||||
.byte $22 ; | X X | $F5D0
|
|
||||||
.byte $EE ; |XXX XXX | $F5D1
|
|
||||||
.byte $88 ; |X X | $F5D2
|
|
||||||
.byte $EE ; |XXX XXX | $F5D3
|
|
||||||
.byte $00
|
|
||||||
|
|
||||||
.byte $EE ; |XXX XXX | $F5D4
|
|
||||||
.byte $22 ; | X X | $F5D5
|
|
||||||
.byte $66 ; | XX XX | $F5D6
|
|
||||||
.byte $22 ; | X X | $F5D7
|
|
||||||
.byte $EE ; |XXX XXX | $F5D8
|
|
||||||
.byte $00
|
|
||||||
|
|
||||||
.byte $AA ; |X X X X | $F5D9
|
|
||||||
.byte $AA ; |X X X X | $F5DA
|
|
||||||
.byte $EE ; |XXX XXX | $F5DB
|
|
||||||
.byte $22 ; | X X | $F5DC
|
|
||||||
.byte $22 ; | X X | $F5DD
|
|
||||||
.byte $00
|
|
||||||
|
|
||||||
.byte $EE ; |XXX XXX | $F5DE
|
|
||||||
.byte $88 ; |X X | $F5DF
|
|
||||||
.byte $EE ; |XXX XXX | $F5E0
|
|
||||||
.byte $22 ; | X X | $F5E1
|
|
||||||
.byte $EE ; |XXX XXX | $F5E2
|
|
||||||
.byte $00
|
|
||||||
|
|
||||||
.byte $EE ; |XXX XXX | $F5E3
|
|
||||||
.byte $88 ; |X X | $F5E4
|
|
||||||
.byte $EE ; |XXX XXX | $F5E5
|
|
||||||
.byte $AA ; |X X X X | $F5E6
|
|
||||||
.byte $EE ; |XXX XXX | $F5E7
|
|
||||||
.byte $00
|
|
||||||
|
|
||||||
.byte $EE ; |XXX XXX | $F5E8
|
|
||||||
.byte $22 ; | X X | $F5E9
|
|
||||||
.byte $22 ; | X X | $F5EA
|
|
||||||
.byte $22 ; | X X | $F5EB
|
|
||||||
.byte $22 ; | X X | $F5EC
|
|
||||||
.byte $00
|
|
||||||
|
|
||||||
.byte $EE ; |XXX XXX | $F5ED
|
|
||||||
.byte $AA ; |X X X X | $F5EE
|
|
||||||
.byte $EE ; |XXX XXX | $F5EF
|
|
||||||
.byte $AA ; |X X X X | $F5F0
|
|
||||||
.byte $EE ; |XXX XXX | $F5F1
|
|
||||||
.byte $00
|
|
||||||
|
|
||||||
.byte $EE ; |XXX XXX | $F5F2
|
|
||||||
.byte $AA ; |X X X X | $F5F3
|
|
||||||
.byte $EE ; |XXX XXX | $F5F4
|
|
||||||
.byte $22 ; | X X | $F5F5
|
|
||||||
.byte $EE ; |XXX XXX | $F5F6
|
|
||||||
.byte $00
|
|
||||||
|
|
||||||
; Epilogue
|
; Epilogue
|
||||||
org $fffc
|
org $fffc
|
||||||
|
|
|
@ -47,7 +47,7 @@ function PixelEditor(parentDiv, fmt, palette, initialData, thumbnails) {
|
||||||
|
|
||||||
var pixcanvas = createCanvas();
|
var pixcanvas = createCanvas();
|
||||||
var ctx = pixcanvas.getContext('2d');
|
var ctx = pixcanvas.getContext('2d');
|
||||||
var pixdata = ctx.createImageData(pixcanvas.width, pixcanvas.height);
|
var pixdata = ctx.createImageData(width, height);
|
||||||
var pixints = new Uint32Array(pixdata.data.buffer);
|
var pixints = new Uint32Array(pixdata.data.buffer);
|
||||||
for (var i=0; i<pixints.length; i++) {
|
for (var i=0; i<pixints.length; i++) {
|
||||||
pixints[i] = initialData ? palette[initialData[i]] : palette[0];
|
pixints[i] = initialData ? palette[initialData[i]] : palette[0];
|
||||||
|
@ -87,12 +87,13 @@ function PixelEditor(parentDiv, fmt, palette, initialData, thumbnails) {
|
||||||
}
|
}
|
||||||
|
|
||||||
function getPixel(x, y) {
|
function getPixel(x, y) {
|
||||||
var ofs = x+y*pixcanvas.width;
|
var ofs = x+y*width;
|
||||||
return getPixelByOffset(ofs);
|
return getPixelByOffset(ofs);
|
||||||
}
|
}
|
||||||
|
|
||||||
function setPixel(x, y, col) {
|
function setPixel(x, y, col) {
|
||||||
var ofs = x+y*pixcanvas.width;
|
if (x < 0 || x >= width || y < 0 || y >= height) return;
|
||||||
|
var ofs = x+y*width;
|
||||||
var oldrgba = pixints[ofs];
|
var oldrgba = pixints[ofs];
|
||||||
var rgba = palette[col];
|
var rgba = palette[col];
|
||||||
if (oldrgba != rgba) {
|
if (oldrgba != rgba) {
|
||||||
|
@ -139,6 +140,7 @@ function PixelEditor(parentDiv, fmt, palette, initialData, thumbnails) {
|
||||||
dragcol = getPixel(pos.x, pos.y) == curpalcol ? 0 : curpalcol;
|
dragcol = getPixel(pos.x, pos.y) == curpalcol ? 0 : curpalcol;
|
||||||
setPixel(pos.x, pos.y, curpalcol);
|
setPixel(pos.x, pos.y, curpalcol);
|
||||||
dragging = true;
|
dragging = true;
|
||||||
|
pixcanvas.setCapture();
|
||||||
})
|
})
|
||||||
.mousemove(function(e) {
|
.mousemove(function(e) {
|
||||||
var pos = getPositionFromEvent(e);
|
var pos = getPositionFromEvent(e);
|
||||||
|
@ -151,38 +153,47 @@ function PixelEditor(parentDiv, fmt, palette, initialData, thumbnails) {
|
||||||
setPixel(pos.x, pos.y, dragcol);
|
setPixel(pos.x, pos.y, dragcol);
|
||||||
dragging = false;
|
dragging = false;
|
||||||
updateThumbnails();
|
updateThumbnails();
|
||||||
|
pixcanvas.releaseCapture();
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/////////////////
|
/////////////////
|
||||||
|
|
||||||
|
var pixel_re = /([0#]?)([x$%])([0-9a-f]+)/gi;
|
||||||
|
|
||||||
function parseHexBytes(s) {
|
function parseHexBytes(s) {
|
||||||
var arr = [];
|
var arr = [];
|
||||||
var re = /0x([0-9a-f]+)/gi;
|
|
||||||
var m;
|
var m;
|
||||||
while (m = re.exec(s)) {
|
while (m = pixel_re.exec(s)) {
|
||||||
if (m[0].startsWith('0x'))
|
var n;
|
||||||
arr.push(parseInt(m[1],16));
|
if (m[2].startsWith('%'))
|
||||||
|
n = parseInt(m[3],2);
|
||||||
|
else if (m[2].startsWith('x') || m[2].startsWith('$'))
|
||||||
|
n = parseInt(m[3],16);
|
||||||
else
|
else
|
||||||
arr.push(parseInt(m[1]));
|
n = parseInt(m[3]);
|
||||||
|
arr.push(n);
|
||||||
}
|
}
|
||||||
return arr;
|
return arr;
|
||||||
}
|
}
|
||||||
|
|
||||||
function replaceHexBytes(s, bytes) {
|
function replaceHexBytes(s, bytes) {
|
||||||
var result = "";
|
var result = "";
|
||||||
var re = /0x[0-9a-f]+/gi; // TODO: decimal
|
|
||||||
var m;
|
var m;
|
||||||
var li = 0;
|
var li = 0;
|
||||||
var i = 0;
|
var i = 0;
|
||||||
while (m = re.exec(s)) {
|
while (m = pixel_re.exec(s)) {
|
||||||
result += s.slice(li, re.lastIndex - m[0].length);
|
result += s.slice(li, pixel_re.lastIndex - m[0].length);
|
||||||
li = re.lastIndex;
|
li = pixel_re.lastIndex;
|
||||||
if (m[0].startsWith('0x'))
|
if (m[2].startsWith('%'))
|
||||||
result += "0x" + hex(bytes[i++]);
|
result += m[1] + "%" + bytes[i++].toString(2);
|
||||||
|
else if (m[2].startsWith('x'))
|
||||||
|
result += m[1] + "x" + hex(bytes[i++]);
|
||||||
|
else if (m[2].startsWith('$'))
|
||||||
|
result += m[1] + "$" + hex(bytes[i++]);
|
||||||
else
|
else
|
||||||
result += bytes[i++].toString();
|
result += m[1] + bytes[i++].toString();
|
||||||
}
|
}
|
||||||
result += s.slice(li);
|
result += s.slice(li);
|
||||||
return result;
|
return result;
|
||||||
|
@ -227,7 +238,7 @@ function convertImagesToBytes(images, fmt) {
|
||||||
var width = fmt.w;
|
var width = fmt.w;
|
||||||
var height = fmt.h;
|
var height = fmt.h;
|
||||||
var bpp = fmt.bpp ? fmt.bpp : 1;
|
var bpp = fmt.bpp ? fmt.bpp : 1;
|
||||||
var bytesperline = fmt.sl ? fmt.sl : Math.ceil(fmt.w * fmt.bpp / 8);
|
var bytesperline = fmt.sl ? fmt.sl : Math.ceil(fmt.w * bpp / 8);
|
||||||
var mask = (1 << bpp)-1;
|
var mask = (1 << bpp)-1;
|
||||||
var nplanes = fmt.np ? fmt.np : 1;
|
var nplanes = fmt.np ? fmt.np : 1;
|
||||||
var bytes = new Uint8Array(bytesperline * height * nplanes * count);
|
var bytes = new Uint8Array(bytesperline * height * nplanes * count);
|
||||||
|
@ -277,7 +288,7 @@ var currentPaletteStr;
|
||||||
var currentPaletteFmt;
|
var currentPaletteFmt;
|
||||||
var allthumbs;
|
var allthumbs;
|
||||||
|
|
||||||
function pixelEditorReceiveMessage(e) {
|
function pixelEditorDecodeMessage(e) {
|
||||||
console.log(e.data);
|
console.log(e.data);
|
||||||
parentSource = e.source;
|
parentSource = e.source;
|
||||||
parentOrigin = e.origin;
|
parentOrigin = e.origin;
|
||||||
|
@ -302,6 +313,9 @@ function pixelEditorReceiveMessage(e) {
|
||||||
// TODO: default palette?
|
// TODO: default palette?
|
||||||
}
|
}
|
||||||
palette = new Uint32Array(palette);
|
palette = new Uint32Array(palette);
|
||||||
|
}
|
||||||
|
|
||||||
|
function pixelEditorCreateThumbnails(e) {
|
||||||
// create thumbnail for all images
|
// create thumbnail for all images
|
||||||
$("#thumbnaildiv").empty();
|
$("#thumbnaildiv").empty();
|
||||||
var parentdiv;
|
var parentdiv;
|
||||||
|
@ -313,6 +327,11 @@ function pixelEditorReceiveMessage(e) {
|
||||||
}
|
}
|
||||||
allthumbs.push(createThumbnailForImage(parentdiv, i));
|
allthumbs.push(createThumbnailForImage(parentdiv, i));
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function pixelEditorReceiveMessage(e) {
|
||||||
|
pixelEditorDecodeMessage(e);
|
||||||
|
pixelEditorCreateThumbnails(e);
|
||||||
// create initial editor
|
// create initial editor
|
||||||
createEditorForImage(0);
|
createEditorForImage(0);
|
||||||
}
|
}
|
||||||
|
|
10
src/ui.js
10
src/ui.js
|
@ -1023,7 +1023,7 @@ function openBitmapEditorWithParams(fmt, bytestr, palfmt, palstr) {
|
||||||
}
|
}
|
||||||
|
|
||||||
function lookBackwardsForJSONComment(line, req) {
|
function lookBackwardsForJSONComment(line, req) {
|
||||||
var re = /[/][*]([{].+[}])[*][/]/;
|
var re = /[/;][*;]([{].+[}])[*;][/;]/;
|
||||||
while (--line >= 0) {
|
while (--line >= 0) {
|
||||||
var s = editor.getLine(line);
|
var s = editor.getLine(line);
|
||||||
var m = re.exec(s);
|
var m = re.exec(s);
|
||||||
|
@ -1033,12 +1033,14 @@ function lookBackwardsForJSONComment(line, req) {
|
||||||
if (obj[req]) {
|
if (obj[req]) {
|
||||||
var start = {obj:obj, line:line, ch:s.indexOf(m[0])+m[0].length};
|
var start = {obj:obj, line:line, ch:s.indexOf(m[0])+m[0].length};
|
||||||
var line0 = line;
|
var line0 = line;
|
||||||
|
var pos0 = start.ch;
|
||||||
line--;
|
line--;
|
||||||
while (++line < editor.lineCount()) {
|
while (++line < editor.lineCount()) {
|
||||||
if (editor.getLine(line).indexOf(';') >= 0) {
|
if (editor.getLine(line).indexOf(';') >= pos0) {
|
||||||
var end = {line:line, ch:editor.getLine(line).length};
|
var end = {line:line, ch:editor.getLine(line).length};
|
||||||
return {obj:obj, start:start, end:end};
|
return {obj:obj, start:start, end:end};
|
||||||
}
|
}
|
||||||
|
pos0 = 0;
|
||||||
}
|
}
|
||||||
line = line0;
|
line = line0;
|
||||||
}
|
}
|
||||||
|
@ -1051,8 +1053,8 @@ function openBitmapEditorAtCursor() {
|
||||||
$("#pixeditback").hide(250);
|
$("#pixeditback").hide(250);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
var data = lookBackwardsForJSONComment(getCurrentLine(), 'bpp');
|
var data = lookBackwardsForJSONComment(getCurrentLine(), 'w');
|
||||||
if (data && data.obj && data.obj.w>0 && data.obj.h>0 && data.obj.bpp>0) {
|
if (data && data.obj && data.obj.w>0 && data.obj.h>0) {
|
||||||
var paldata = lookBackwardsForJSONComment(data.start.line-1, 'pal');
|
var paldata = lookBackwardsForJSONComment(data.start.line-1, 'pal');
|
||||||
var palbytestr;
|
var palbytestr;
|
||||||
if (paldata) {
|
if (paldata) {
|
||||||
|
|
|
@ -0,0 +1,40 @@
|
||||||
|
|
||||||
|
var vm = require('vm');
|
||||||
|
var fs = require('fs');
|
||||||
|
var assert = require('assert');
|
||||||
|
var includeInThisContext = function(path) {
|
||||||
|
var code = fs.readFileSync(path);
|
||||||
|
vm.runInThisContext(code, path);
|
||||||
|
};
|
||||||
|
|
||||||
|
includeInThisContext("src/util.js");
|
||||||
|
includeInThisContext("src/pixed/pixeleditor.js");
|
||||||
|
|
||||||
|
describe('Pixel editor', function() {
|
||||||
|
it('Should decode', function() {
|
||||||
|
var paldatastr = " 0x00, 0x03, 0x19, 0x50, 0x52, 0x07, 0x1f, 0x37, 0xe0, 0xa4, 0xfd, 0xff, 0x38, 0x70, 0x7f, 0xf8, ";
|
||||||
|
var fmt = {w:14,h:16,bpp:4,brev:1};
|
||||||
|
var datastr = "0x00,0x00,0xef,0xef,0xe0,0x00,0x00, 0x00,0xee,0xee,0xfe,0xee,0xe0,0x00, 0x0e,0xed,0xef,0xef,0xed,0xee,0x00, 0x0e,0xee,0xdd,0xdd,0xde,0xee,0x00, 0x0e,0xee,0xed,0xde,0xee,0xee,0x00, 0x00,0xee,0xee,0xde,0xee,0xe0,0x00, 0x00,0xee,0xee,0xde,0xee,0xe0,0x00, 0x00,0x00,0xed,0xdd,0xe0,0x00,0x0d, 0xdd,0xdd,0xee,0xee,0xed,0xdd,0xd0, 0x0d,0xee,0xee,0xee,0xee,0xee,0x00, 0x0e,0xe0,0xee,0xee,0xe0,0xee,0x00, 0x0e,0xe0,0xee,0xee,0xe0,0xee,0x00, 0x0e,0xe0,0xdd,0xdd,0xd0,0xde,0x00, 0x0d,0x00,0xee,0x0e,0xe0,0x0d,0x00, 0x00,0x00,0xed,0x0e,0xe0,0x00,0x00, 0x00,0x0d,0xdd,0x0d,0xdd,0x00,0x18,";
|
||||||
|
pixelEditorDecodeMessage({data:{fmt:fmt,bytestr:datastr,palfmt:{pal:332,n:16},palstr:paldatastr}});
|
||||||
|
assert.deepEqual(palette, [0xff000000,
|
||||||
|
0xff000060,
|
||||||
|
0xff006020,
|
||||||
|
0xff404000,
|
||||||
|
0xff404040,
|
||||||
|
0xff0000e0,
|
||||||
|
0xff0060e0,
|
||||||
|
0xff00c0e0,
|
||||||
|
0xffc08000,
|
||||||
|
0xff808080,
|
||||||
|
0xffc0e0a0,
|
||||||
|
0xffc0e0e0,
|
||||||
|
0xff00e000,
|
||||||
|
0xff40c000,
|
||||||
|
0xff40e0e0,
|
||||||
|
0xffc0e000,
|
||||||
|
]);
|
||||||
|
assert.deepEqual(allimages, [[0,0,0,0,14,15,14,15,14,0,0,0,0,0,0,0,14,14,14,14,15,14,14,14,14,0,0,0,0,14,14,13,14,15,14,15,14,13,14,14,0,0,0,14,14,14,13,13,13,13,13,14,14,14,0,0,0,14,14,14,14,13,13,14,14,14,14,14,0,0,0,0,14,14,14,14,13,14,14,14,14,0,0,0,0,0,14,14,14,14,13,14,14,14,14,0,0,0,0,0,0,0,14,13,13,13,14,0,0,0,0,13,13,13,13,13,14,14,14,14,14,13,13,13,13,0,0,13,14,14,14,14,14,14,14,14,14,14,0,0,0,14,14,0,14,14,14,14,14,0,14,14,0,0,0,14,14,0,14,14,14,14,14,0,14,14,0,0,0,14,14,0,13,13,13,13,13,0,13,14,0,0,0,13,0,0,14,14,0,14,14,0,0,13,0,0,0,0,0,0,14,13,0,14,14,0,0,0,0,0,0,0,0,13,13,13,0,13,13,13,0,0,1,8]]);
|
||||||
|
assert.equal(" 0x00, 0x03, 0x19, 0x50, 0x52, 0x07, 0x1F, 0x37, 0xE0, 0xA4, 0xFD, 0xFF, 0x38, 0x70, 0x7F, 0xF8, ",
|
||||||
|
replaceHexBytes(paldatastr, parseHexBytes(paldatastr)));
|
||||||
|
});
|
||||||
|
});
|
Loading…
Reference in New Issue