; ***** List Spooled Transactions (ALPHA II) *****
base	equ	5800h
suspend equ	0109h	; Block Voluntarily
unspool equ	0145h	; Oldest Spool Sector -> (DE)
print	equ	0187h	; (HL) -> Printer
;
; ASCII Control Characters--
nul	equ	00h
lf	equ	0ah
cr	equ	0dh
ff	equ	0ch
time	equ	7fh
s	equ	80h
;
; Z80 OP Codes--
djnz	equ	00010h
ldir	equ	0b0edh
;
; Inter-Task Communication--
label	equ	01c2h	; -> Spool Diskette Label Buffer
ctl	equ	01d0h	; Sytem Control Block
flags	equ	ctl+18	; B1: Buffer Area in use
;
	org	base
	lxi	h,flags
wait	call	suspend !dw 04ecbh ; BIT 1,(HL)
	jnz	wait !dw 0cecbh ; SET 1,(HL)	; block calls
	lhld	label !lxi d,19 !dad d !lxi d,is !lxi b,6 !dw ldir
	lxi	h,head1 !call print
	call	despool
	lhld	label !lxi d,19 !dad d !xchg !lxi h,is !lxi b,6 !dw ldir
	lxi	h,flags !dw 08ecbh ; RES 1,(HL) ; release buffers
	lxi	h,msg3 !jmp print	; end of listing
;
despool lxi	d,buffer !call unspool !rz	; Spool empty
	lxi	h,buffer !push h !inx h !mov c,m !dcr c !dcr c !push b
	inx	h
	lxi	d,head2+11 !lxi b,2 !dw ldir	; S/W Version No
	lxi	d,head2+26 !lxi b,5 !dw ldir	; Access Code
	lxi	d,head2+39 !lxi b,8 !dw ldir	; Customer Ref
	lxi	h,head2 !call print !pop b !pop h
	lxi	d,32 !dad d !mvi b,6	; slots left in 1st sector
u10	push	h !push b !lxi d,item1+1 !lxi b,4 !dw ldir ; PIP Code
	inx	d !lxi b,4 !dw ldir
	inx	d !inx d !lxi b,8 !dw ldir	; Qty, Flags
	lxi	h,item1 !call print !pop b !pop h
	lxi	d,16 !dad d !dcr c !jz despool !dw djnz+(u10-$-2)*256
	lxi	d,buffer !call unspool	; read next sector
	lxi	h,buffer !mvi b,8 !jmp u10	; onto next buffer
;
head1	db	s+3,'****** ',time,' SPOOL LISTING',nul
head2	db	s+2,'    ** Vn nn  Access Code aaaa  C/Ref xxxxxxxx',nul
item1	db	s+1,'pppp-pppp  qqqqqfff',nul
msg3	db	s+2,'End of Spool Listing',nul
is	ds	6	; Spool/Unspool initial Track/Sector save area
buffer	ds	128	; Spool Buffer
	end	base

The QX10 Archive