;FREE.MAC - CALCULATE FREE SPACE ON A: THRU D: ; cr equ 0dh lf equ 0ah ; .request syslib extrn crlf,print,cout ; .z80 ; start: ld sp,stack call print cr,lf,lf 'Free space display:',cr,lf 'DRIVE k free k used',cr,lf '-----------------------',cr,lf,0 ld a,0 ld (drive),a loop: ld a,(drive) inc a ld (drive),a cp 16 jp z,done dec a push af ld c,21 ld e,a ld d,0ffh call 50h pop af inc l jr nz,loop ld e,a ld c,19 call 50h and 0fh push af call cvhlk pop af push hl ex de,hl call cvhlk ld a,(drive) add a,40h call cout call print ': ',0 ld a,3 call phldc## call print db ' ',0 ex de,hl pop hl or a sbc hl,de ld a,3 call phldc## call crlf jr loop ; done: call print cr,lf,lf,0 rst 0 ; cvhlk: dec a dec a ..ca: dec a ret z add hl,hl jr ..ca ; drive: db 0 ds 80 stack equ $ end