( Dev/File )

%8+ { #0008 ADD2 }
%MEMORY { #1000 }

%%^! { .% DEI }  %%~! { .% DEO }
%%*! { .% DEI2 } %%=! { .% DEO2 }
%%^  { .% PEK }  %%~  { .% POK }
%%*  { .% PEK2 } %%=  { .% POK2 }

( devices )

|00 @System     [ &vector $2 &pad    $6 &r      $2 &g     $2 &b      $2 ]
|10 @Console    [ &pad    $8 &char   $1 &byte   $1 &short $2 &string $2 ]
|20 @Screen     [ &vector $2 &width  $2 &height $2 &pad   $2 &x      $2 &y $2 &addr $2 &color $1 ]
|70 @File       [ &vector $2 &success $2 &offset $2 &pad $2 &name $2 &length $2 &load $2 &save $2 ]

( variables )

|0000

( init )

|0100 ( -> )

	( theme )
	#0efc System/r=!
	#03cc System/g=!
	#03ac System/b=!

	( load file )
	#1000    File/length=!
	;srcpath File/name=!
	MEMORY   File/load=!

	File/success*! #0000 NEQ2 ;on-success JNZ2

	;failedtxt Console/string=!

BRK

@on-success ( -> )
	
	;successtxt Console/string=!

	( draw image )
	MEMORY Screen/addr=!
	#0000 #0080
	&ver
		( save ) OVR2 Screen/y=!
		#0000 #0080
		&hor
			( save ) OVR2 Screen/x=!
			( draw ) #41 Screen/color~!
			( incr ) Screen/addr*! #0010 ADD2 Screen/addr=!
			( incr ) SWP2 8+ SWP2
			OVR2 OVR2 LTH2 ,&hor JNZ
		POP2 POP2
		( incr ) SWP2 8+ SWP2
		OVR2 OVR2 LTH2 ,&ver JNZ
	POP2 POP2

	( save file )
	#1000    File/length=!
	;dstpath File/name=!
	MEMORY   File/save=!

BRK

@successtxt "Success! $1
@failedtxt "Failed. $1

@srcpath    "projects/pictures/ako10x10.chr $1
@dstpath    "bin/image-copy.chr $1