From 9c9f351197747c91b1d2fed50368957d05d285f4 Mon Sep 17 00:00:00 2001 From: minjaesong Date: Mon, 27 Dec 2021 14:16:34 +0900 Subject: [PATCH] font dumping tool --- assets/disk0/home/dumpfont.js | 38 ++++++++++++++++++++++++++++++++++ assets/hangul_high.chr | Bin 0 -> 1920 bytes assets/hangul_low.chr | Bin 0 -> 1920 bytes 3 files changed, 38 insertions(+) create mode 100644 assets/disk0/home/dumpfont.js create mode 100644 assets/hangul_high.chr create mode 100644 assets/hangul_low.chr diff --git a/assets/disk0/home/dumpfont.js b/assets/disk0/home/dumpfont.js new file mode 100644 index 0000000..67c69d7 --- /dev/null +++ b/assets/disk0/home/dumpfont.js @@ -0,0 +1,38 @@ +if (!_TVDOS) { + println("This program can only run on TVDOS") + return 1 +} +if (!exec_args[1]) { + println("Usage: dumpfont ") + println(" e.g. if rom_prefix is 'home/myfont', the output files will be 'home/myfont_low.chr' and 'home/myfont_high.chr'") + return 1 +} + +let lowfilename = exec_args[1] + "_low.chr" +let highfilename = exec_args[1] + "_high.chr" + +let workarea = sys.malloc(1920) + +// dump low rom +sys.poke(-1299460, 16) +for (let i = 0; i < 1920; i++) { + let byte = sys.peek(-1300607 - i) + sys.poke(workarea + i, byte) +} + +filesystem.open("A", lowfilename, "W") +dma.ramToCom(workarea, filesystem._toPorts("A")[0], 1920) +println("Wrote CHR rom " + lowfilename) + +// dump high rom +sys.poke(-1299460, 17) +for (let i = 0; i < 1920; i++) { + let byte = sys.peek(-1300607 - i) + sys.poke(workarea + i, byte) +} + +filesystem.open("A", highfilename, "W") +dma.ramToCom(workarea, filesystem._toPorts("A")[0], 1920) +println("Wrote CHR rom " + highfilename) + +sys.free(workarea) \ No newline at end of file diff --git a/assets/hangul_high.chr b/assets/hangul_high.chr new file mode 100644 index 0000000000000000000000000000000000000000..b0e1d66dfd22b0168d876ddf59901373fe144ba0 GIT binary patch literal 1920 zcmchXO-lnY5QYa9Ru6$*i-j%t3kpKtSZbgn3C%+!`rSL0dwH3e*1V2*vk!;mfK=1>>4+KBX3%?-xF&BQM@FRsE z=Y=0~vOasbg2>PLJimNCz515IZ@26HK=31lA1VAm@B_gQ1V7FTzaaWC7k;GhBZVL5 zgf^=Qc0Y38Wa#{6n{ry58yb0@BQbBt`GBik zQ9l~>D`WkbWB-L8`!9(7XVm)7sO|1N?Cw!__cTqDEh3`-xQOh#_SQzddE9fHQfqI$ zsb3d1yOJ8@$Hn!!T5&Y5LL;d=HN{)J*dSbu;d3g+hTkWa^1s1p?lm*p&(N5Le`kTLh6H&|N6c+ zvYqx9?0^-$`O>@@DN217S5?2N>h)*ksCUEgXBgi84uVuZKwP?vAhkN2ts$0v+*uQhF+`i24R)sJ zjzs0I-0gOE?AP5c=-uAC$USTwZO;a&vXLxPaMM<}<-EXHu^3 zBt#as*euRykRh;lC6olhK9OsIwJ7%J&khWj67|Oqh~I0+%bPVLGJ(DPj(10_8PgHu4`}( zvoN`cobZSwLDJCnqdtYuPC11UfxO#TKO^aRwk109t9vq`&B3QgaK5meD`RgJ(}_sV zX)o_qY*Nf)^t9GU8>cux2vL|W7CG2>kGUc#+A5b>>jmDujklUB4>VQ^WQtG1$BIYv zNvEvVuC5)GASCqT{GcGkIA{f)aD#{^Y-kPU7STEju{vgfjGkHw9dk-a;MEB|GE%tf zjst}BfEatz9noIeq8ofyM3DX<5`kPb6f>eYCQ_%29O4A$TC~{OqfnAP`4xD9Je#*W za#)WxAv?1b6z2!~et$TGaGE_WIzH7h#*sS&Bg8Wz+m-M>%DS5VXay-XYNLn5sqf)g MHq#$f)c)`FACr?C#{d8T literal 0 HcmV?d00001