;1234567890123456789012345678901234567890123456789012345678901234567890123456789
; Pseudo loading procedure. Good for nostalgic disc versions, esp. pictures.
; size 77 bytes
; Code-oriented. IX, DE - by default, HL-start of code source.
; The program has 3 entries:
; Steald - for full imitation
; Stldhd - for immediate leader&data "loading"	(A reg contains border color!)
; Stlddt - for immediate data "loading"
; The part stldhd ... stlddt-1 can be cut w/o any loss to create a no-leader "loading"
; The border is black after finish
; Different parameters are marked in code below
; NOTE: source must not have preceding type and concluding xor-test bytes
;
Steald	ld	a,5	; 1st occurence of border for a block-waiting state
	out	(fe),a
	ld	b,32	; pause between border changes for a b-w state, 1 s
	halt
	djnz	$-1
	xor	7
	cp	5	; 2nd occurence of border for a block-waiting state
	jr	nz,$-11
Stldhd	ld	b,0
	push	de
	ld	e,b
	ld	d,a	; length of the leader depends on border color )
	out	(fe),a
	xor	1F
	djnz	$
	dec	e
	jr	nz,$-7
	dec	d
	jr	nz,$-10
	pop	de
Stlddt	ld	c,(hl)
	ld	b,8
	ld	a,16	; border for data-reading state+0x10 (speaker on)
	rlc	c
	push	bc
	ld	b,18	; length of one half of a pseudo-loaded 0, 24(dec)*13+14=0.1 ms
	jr	nc,$+4
	sla	b
	out	(fe),a
	ld	c,b
	djnz	$
	ld	b,c
	xor	17
	out	(fe),a
	djnz	$
	pop	bc
	djnz	$-24
	ld	(ix),c
	inc	ix
	inc	hl
	dec	de
	ld	a,d
	or	e
	jr	nz,$-35
	out	(fe),a
	ret