\ 4tH binary to .h file converter - Copyright 2007 J.L. Bezemer \ You can redistribute this file and/or modify it under \ the terms of the GNU General Public License \ This file is geared toward the conversion of 4tH HX bytecode. \ In order to convert other binary files, just change 'unit' to 'char'. s" static unit " sconstant header \ declaration header include lib/argopen.4th \ use ARG-OPEN word include lib/ulcase.4th \ case conversion 9 constant /line \ number of bytes per line char ' constant quote \ single quote character char , constant colon \ single colon character /line string line \ input buffer : .char ." '\x" <# # # #> s>lower type quote emit ; : .char, .char colon emit space ; ( n --) : ?c@ dup if 1- chars + c@ else 2drop 0 then ; : ?char if ?c@ .char else 2drop then ; ( a n f --) : .header header type 1 args type ." [] = {" cr ; : .footer ." };" cr ; ( --) : ?bounds space space over 0<> and if 1- then bounds ; : read over over accept tuck <> ; ( a n1 -- a n2 f) : .line >r 2dup r@ ?bounds ?do i c@ .char, loop r@ ?char cr r> ; : .lines hex begin line /line read .line until ; : Usage argn 4 < abort" Usage: bin2h variable file h-file" ; : OpenFiles Usage input 2 arg-open output 3 arg-open ; : Convert Openfiles .header .lines .footer close close ; Convert