( uxncli b64enc.rom data )

|10 @Console &vector $2 &read $1 &pad $4 &type $1 &write $1 &error $1

|0000

	@queue $1

|0100

@on-reset ( -> )
	;on-console .Console/vector DEO2
	BRK

@on-console ( -> )
	.Console/read DEI DUP ?{
		&terminate ( -> )
			.queue LDZ EQU ?{ #00 <b64enc> }
			#800f DEO
			BRK }
		<b64enc>
		.Console/type DEI #04 EQU ?&terminate
	BRK

(
@|core )

@<b64enc> ( byte -- )
	,&buf STR
	#0800
	&l ( -- )
		[ LIT &buf $1 ] OVR #07 SWP SUB SFT #01 AND
		[ LIT &inc $1 ] INCk #06 DIVk MUL SUB ,&inc STR
		( bit id -- )
		SWP .queue LDZ ORA DUP ADD .queue STZ
		#05 NEQ ?{
			[ LIT2 00 -queue ]
				DUP2 LDZ #01 SFT ;MIME ADD2 LDA #18 DEO
				STZ }
		INC GTHk ?&l
	POP2 JMP2r

@MIME [
	"ABCDEFGHIJKLMNOP
	"QRSTUVWXYZabcdef
	"ghijklmnopqrstuv
	"wxyz0123456789+/ ]