System information
 0137 115C00 copy:  lxi d,sfcb ; source
 013A CD7801  call read ; read next record
 013D B7  ora a  ; end of file?
 013E C25101     jnz eofile ; skip write if so
 ;
 ; not end of file, write the record
 0141 11D901    lxi d,dfcb ; destination
 0144 CD7D01  call write ; write the record
 0147 11A901    lxi d,space ; ready message
 014A B7  ora a  ; 00 if write ok
 014B C46101    cnz finis ; end if so
 014E C33701    jmp copy ; loop until eof
 ;
 eofile: ; end of file, close destination
 0151 11D901    lxi d,dfcb ; destination
 0154 CD6E01    call close ; 255 if error
 0157 21BA01  lxi h,wrprot  ; ready message
 015A 3C  inr a  ; 255 becomes 00
 015B CC6101    cz finis ; shouldn't happen
 ;
 ; copy operation complete, end
 015E 11CB01  lxi d,normal ; ready message
 ;
 finis: ; write message given in de, reboot
 0161 0E09   mvi c,printf
 0163 CD0500  call bdos  ; write message
 0166 C30500  jmp bdos  ; reboot system
 ;
 ; system interface subroutines
 ; (all return directly from bdos)
 ;
 0169 0E0F open:  mvi c,openf
 016B C30500  jmp bdos
 ;
 016E 0E10 close:  mvi c,closef
 0170 C30500  jmp bdos
 ;
 0173 0E13 delete:  mvi c,deletef
 0175 C30500   jmp bdos
 ;
5.3 A Sample Copy Program CP/M Operating System Manual
5-38










