|00 @System &vector $2 &expansion $2 &wst $1 &rst $1 &metadata $2 &r $2 &g $2 &b $2 &debug $1 &state $1 |10 @Console &vector $2 &read $1 &pad $4 &type $1 &write $1 &error $1 |a0 @File/vector $2 &success $2 &stat $2 &delete $1 &append $1 &name $2 &length $2 &read $2 &write $2 ( Portable BitMap https://en.wikipedia.org/wiki/Netpbm#File_formats P4 # This is an example binary format of the letter "J" with each byte in decimal notation 6 10 8 8 8 8 8 8 136 112 0 0 88x31 pixel image row of 88px -> 11 bytes 8 bits per byte 31 rows -> 341 bytes hexdump -C footer.pbm ) |1550 @drawing-size |15f @image-size ( header 9 + data 341 = 350 ) |0100 @on-reset ( set img-pt to start of img ) ;img ;img-pt STA2 ( file header ) LIT "P write-to-image LIT "4 write-to-image #0a write-to-image LIT "8 write-to-image LIT "8 write-to-image #20 write-to-image LIT "3 write-to-image LIT "1 write-to-image #0a write-to-image ( image data ) load-drawing #e7 write-to-image #e7 write-to-image #e7 write-to-image #e7 write-to-image #e7 write-to-image #e7 write-to-image #e7 write-to-image #e7 write-to-image save-file BRK @load-drawing ;/filename .File/name DEO2 ;drawing-size .File/length DEO2 ;drawing .File/read DEO2 JMP2r &filename "footer.1line $1 @write-to-image ( val ) ;img-pt LDA2 ( val pt* ) STA ( ) ;img-pt LDA2 ( pt* ) #0001 ADD2 ( pt*+1 ) ;img-pt STA2 JMP2r @save-file ;/filename .File/name DEO2 ;image-size .File/length DEO2 ;img .File/write DEO2 JMP2r &filename "footer.pbm $1 @img-pt $2 @img $image-size @drawing $drawing-size