purpose: Wrap an OFW image in a WinCE ".bin" file format h# 100000 constant ofw-load-address h# 100000 constant ofw-entry-address : put-long ( l -- ) lbsplit swap 2swap swap ( hi hmid lmid lo ) 4 0 do ofd @ fputc loop ; : make-bin-file ( "in-filename" "out-filename" -- ) reading writing " B000FF"n" ofd @ fputs \ Signature ofw-load-address put-long \ Lowest load address ifd @ fsize put-long \ Total size ofw-load-address put-long \ Section load address - offset h# 0f ifd @ fsize put-long \ Total size offset h# 13 0 put-long \ Checksum, will be patched later - offset h# 17 0 ( sum ) begin ( sum ) ifd @ fgetc ( sum char ) dup -1 <> ( sum char more? ) while ( sum char ) dup ofd @ fputc ( sum char ) + ( sum' ) repeat ( sum ) \ Final record with entry address 0 put-long ( ) ofw-entry-address put-long ( ) 0 put-long ( ) h# 17 ofd @ fseek ( sum ) put-long ( ) ofd @ fclose ( ) ;