#
# ZX Spectrum TAP (emulator executable) exporter
# A Multipaint internal script
#
# Based on bin2tap output from Fuse emulator package
#

# Machine code header

BYTE $13,$00,$00,$00,$73,$70,$65,$63,$73,$68,$6F,$77,$20,$20,$5E,$00
BYTE $0A,$00,$5E,$00,$0C,$60,$00,$FF,$00,$0A,$16,$00,$EA,$6C,$6F,$61
BYTE $64,$65,$72,$20,$62,$79,$20,$62,$69,$6E,$32,$74,$61,$70,$31,$2E
BYTE $32,$0D,$00,$14,$12,$00,$E7,$B0,$22,$30,$22,$3A,$DA,$B0,$22,$30
BYTE $22,$3A,$D9,$B0,$22,$37,$22,$0D,$00,$1E,$0A,$00,$FD,$B0,$22,$32
BYTE $34,$35,$37,$35,$22,$0D,$00,$32,$0D,$00,$EF,$22,$73,$70,$65,$63
BYTE $73,$68,$6F,$77,$22,$AF,$0D,$00,$3C,$0B,$00,$F9,$C0,$B0,$22,$33
BYTE $32,$37,$36,$38,$22,$0D,$E3,$13,$00,$00,$03,$73,$70,$65,$63,$73
BYTE $68,$6F,$77,$20,$20,$AF,$1C,$00,$80,$00,$80,$B6,$B1,$1C,$FF,$CD
BYTE $95,$9C,$CD,$09,$80,$C3,$A8,$9C,$21,$00,$03,$E5,$3E,$00,$F5,$33
BYTE $26,$58,$E5,$CD,$6F,$80,$F1,$F1,$33,$76,$01,$95,$81,$21,$00,$18
BYTE $E5,$C5,$26,$40,$E5,$CD,$20,$81,$F1,$F1,$F1,$76,$3A,$94,$81,$D3
BYTE $FE,$01,$95,$99,$21,$00,$03,$E5,$C5,$26,$58,$E5,$CD,$20,$81,$F1
BYTE $F1,$F1,$76,$18,$FD,$C9,$DD,$E5,$DD,$21,$00,$00,$DD,$39,$DD,$7E
BYTE $04,$D3,$FE,$DD,$E1,$C9,$D5,$2A,$95,$9C,$11,$CD,$83,$ED,$5F,$83
BYTE $5F,$19,$CB,$0C,$CB,$1D,$22,$95,$9C,$D1,$2A,$95,$9C,$C9,$DD,$E5
BYTE $DD,$21,$00,$00,$DD,$39,$D5,$E5,$C5,$DD,$6E,$04,$DD,$66,$05,$DD
BYTE $4E,$06,$DD,$5E,$07,$DD,$56,$08,$D5,$CB,$3A,$CB,$1B,$CB,$3A,$CB
BYTE $1B,$CB,$3A,$CB,$1B,$7A,$B3,$CA,$B1,$80,$71,$23,$71,$23,$71,$23
BYTE $71,$23,$71,$23,$71,$23,$71,$23,$71,$23,$1B,$7A,$B3,$C2,$9B,$80
BYTE $D1,$7B,$E6,$07,$CA,$BD,$80,$47,$71,$23,$10,$FC,$C1,$E1,$D1,$DD
BYTE $E1,$C9,$DD,$E5,$DD,$21,$00,$00,$DD,$39,$D5,$E5,$C5,$DD,$6E,$04
BYTE $DD,$66,$05,$DD,$4E,$06,$41,$DD,$5E,$07,$DD,$56,$08,$E5,$D5,$19
BYTE $CB,$3A,$CB,$1B,$CB,$3A,$CB,$1B,$CB,$3A,$CB,$1B,$CB,$3A,$CB,$1B
BYTE $7A,$B3,$CA,$0D,$81,$DD,$21,$00,$00,$DD,$39,$F9,$C5,$C5,$C5,$C5
BYTE $C5,$C5,$C5,$C5,$1B,$7A,$B3,$C2,$FD,$80,$DD,$F9,$D1,$E1,$7B,$E6
BYTE $0F,$CA,$1A,$81,$47,$71,$23,$10,$FC,$C1,$E1,$D1,$DD,$E1,$C9,$DD
BYTE $E5,$DD,$21,$00,$00,$DD,$39,$D5,$E5,$C5,$DD,$5E,$04,$DD,$56,$05
BYTE $DD,$6E,$06,$DD,$66,$07,$DD,$4E,$08,$DD,$46,$09,$79,$B0,$CA,$44
BYTE $81,$ED,$B0,$C1,$E1,$D1,$DD,$E1,$C9,$DD,$E5,$DD,$21,$00,$00,$DD
BYTE $39,$DD,$4E,$04,$ED,$68,$DD,$E1,$C9,$DD,$E5,$DD,$21,$00,$00,$DD
BYTE $39,$DD,$4E,$04,$DD,$7E,$05,$ED,$79,$DD,$E1,$C9,$FF,$FF,$DD,$E5
BYTE $DD,$21,$00,$00,$DD,$39,$2A,$39,$00,$22,$6D,$81,$F3,$DD,$6E,$04
BYTE $DD,$66,$05,$22,$39,$00,$FB,$DD,$E1,$C9,$F3,$2A,$6D,$81,$22,$39
BYTE $00,$FB,$C9

# Set checksum

Q = $E4

# Border

A = PEEK 0
BYTE A

Q = Q^A

# Display file

# bitmap

FOR Y=0 TO 2
	FOR V=0 TO 7
		FOR E=0 TO 7
			FOR X=0 TO 31
				C=128
				L=0
				FOR B=0 TO 7
					P=V
					P=P+E*8
					P=P+Y*64

					A=1024
					A=A+P*256
					A=A+X*8

					A=A+B
					O=PEEK A
					L=L+C*O
					C=C/2
				NEXT B
				BYTE L

				Q = Q^L

			NEXT X
		NEXT E
	NEXT V
NEXT Y

# Attributes

FOR Y=0 TO 23
	FOR X=0 TO 31
		R=0
		P=Y*256
		P=P+X
		P=P+65536
		L=PEEK P
		P=P+6144
		H=PEEK P

		IF L>7
			H=H-8	
			L=L-8
			R=64
		ENDIF

		IF H<0
			H=0
		ENDIF

		A=H*8+L+R

		BYTE A

		Q = Q^A		

	NEXT X
NEXT Y

# End of display file

# Machine code footer

BYTE $FF,$FF,$FD,$21,$95,$9C,$FD,$36,$00,$CD,$FD,$21,$95,$9C,$FD,$36
BYTE $01,$83,$C9,$3E,$00,$CF,$76,$18,$FD,$C9

# checksum

BYTE Q

# Write to file

SAVE

