; ***** 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