get image export working

This commit is contained in:
Travis Shears 2025-07-03 11:21:06 +02:00
parent 940f8e235c
commit 529a4a7e65
4 changed files with 111 additions and 37 deletions

Binary file not shown.

Binary file not shown.

View file

@ -1,7 +1,8 @@
|00 @System &vector $2 &expansion $2 &wst $1 &rst $1 &metadata $2 &r $2 &g $2 &b $2 &debug $1 &state $1 |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 |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 |a0 @File/vector $2 &success $2 &stat $2 &delete $1 &append $1 &name $2 &length $2 &read $2 &write $2
%dbug { #01 .System/debug DEO }
%print { .Console/write DEO }
( (
Portable BitMap Portable BitMap
https://en.wikipedia.org/wiki/Netpbm#File_formats https://en.wikipedia.org/wiki/Netpbm#File_formats
@ -35,16 +36,82 @@
#0a write-to-image #0a write-to-image
( image data ) ( image data )
load-drawing load-drawing
#e7 write-to-image ( get first 8 pixels )
#e7 write-to-image #1f ;/y STA
#e7 write-to-image &y-loop
#e7 write-to-image #58 ;/x STA
#e7 write-to-image #01 ;/i STA
#e7 write-to-image &row-loop
#e7 write-to-image ;/x LDA #07 ADD ;/y LDA get-pixel
#e7 write-to-image ;/x LDA #06 ADD ;/y LDA get-pixel
;/x LDA #05 ADD ;/y LDA get-pixel
;/x LDA #04 ADD ;/y LDA get-pixel
;/x LDA #03 ADD ;/y LDA get-pixel
;/x LDA #02 ADD ;/y LDA get-pixel
;/x LDA #01 ADD ;/y LDA get-pixel
;/x LDA ;/y LDA get-pixel
build-byte
write-to-image
;/x LDA #08 ADD ;/x STA
;/i LDA INC ;/i STA
;/i LDA #0c NEQ ?/row-loop ( run 11 times )
;/y LDA #01 ADD ;/y STA
;/y LDA #3e
NEQ ?/y-loop ( run 31 times )
save-file save-file
BRK BRK
&i $1
&y $1
&x $1
@build-byte ( p p p p p p p p )
LITr 00 ( p p p p p p p p | 00 )
?{ LITr 01 ORAr }
LITr 10 SFTr
?{ LITr 01 ORAr }
LITr 10 SFTr
?{ LITr 01 ORAr }
LITr 10 SFTr
?{ LITr 01 ORAr }
LITr 10 SFTr
?{ LITr 01 ORAr }
LITr 10 SFTr
?{ LITr 01 ORAr }
LITr 10 SFTr
?{ LITr 01 ORAr }
LITr 10 SFTr
?{ LITr 01 ORAr }
STHr
JMP2r
@get-pixel ( x y -> bool )
,/y STR ( x )
,/x STR ( )
;drawing ,/pt STR2
&loop
( looped through the entire drawing? )
,/pt LDR2 ( pt* )
;drawing ;drawing-size ADD2 ( pt* end-of-drawing* )
EQU2 ?/not-found
( check if current x y has already been visited )
,/pt LDR2 LDA2 ( x1 y1 )
,/x LDR ( x1 y1 x )
,/y LDR ( x1 y1 x y )
EQU2 ?/found
( incrment pointer and save it )
,/pt LDR2 ( pt* )
#0002 ADD2 ( pt+2* )
,/pt STR2
!/loop
&not-found #01 JMP2r
&found #00 JMP2r
&pt $2
&x $1
&y $1
( @remove-offset )
@load-drawing @load-drawing
;/filename .File/name DEO2 ;/filename .File/name DEO2

View file

@ -2,35 +2,42 @@
|10 @Console &vector $2 &read $1 &pad $4 &type $1 &write $1 &error $1 |10 @Console &vector $2 &read $1 &pad $4 &type $1 &write $1 &error $1
|0100 |0100
@on-reset @on-reset
#0aa8 #01
#0058 #00
NIP #00
( mem-test ) #00
#00
#00
#00
#01
build-byte
(
#0a ( b )
#10 SFT ( b )
#00 ( b 00 )
?{ #01 ORA }
)
BRK BRK
@mem-test ( a b c -- x) @build-byte ( p p p p p p p p )
!{ LITr 00 ( p p p p p p p p | 00 )
&a $1 ?{ LITr 01 ORAr }
&b $1 LITr 10 SFTr
&c $1 ?{ LITr 01 ORAr }
} LITr 10 SFTr
,/a STR ?{ LITr 01 ORAr }
,/b STR LITr 10 SFTr
,/c STR ?{ LITr 01 ORAr }
LITr 10 SFTr
,/a LDR ?{ LITr 01 ORAr }
,/b LDR LITr 10 SFTr
ADD ?{ LITr 01 ORAr }
,/c LDR LITr 10 SFTr
ADD ( 06 ) ?{ LITr 01 ORAr }
LITr 10 SFTr
STH ?{ LITr 01 ORAr }
#00 STH STHr
SWP2r
JMP2r JMP2r
( !{ &a $1 } )