System information
0016 = makef equ 22; make file func#
;
0100 org tpa ; beginning of tpa
0100 311902 lxi sp,stack ; set local stack
0103 0E10 mvi c,16 ; half an fcb
0105 116C00 lxi d,fcb2 ; source of move
0108 21D901 lxi h,dfcb ; destination fcb
010B 1A mfcb: ldax d ; source fcb
010C 13 inx d ; ready next
010D 77 mov m,a ; dest fcb
010E 23 inx h ; ready next
010F 0D dcr c ; count 16...0
0110 C20B01 jnz mfcb ; loop 16 times
;
; name has been removed, zero cr
0113 AF xra a ; a = 00h
0114 32F901 sta dfcbcr ; current rec = 0
;
; source and destination fcb's ready
0117 115C00 lxi d,sfcb ; source file
011A CD6901 call open ; error if 255
011D 118701 lxi d,nofile ; ready message
0120 3C inr a ; 255 becomes 0
0121 CC6101 cz finis ; done if no file
;
; source file open, prep destination
0124 11D901 lxi d,dfcb ; destination
0127 CD7301 call delete ; remove if present
;
012A 11D901 lxi d,dfcb ; destination
012D CD8201 call make ; create the file
0130 119601 lxi d,nodir ; ready message
0133 3C inr a ; 255 becomes 0
0134 CC6101 cz finis ; done if no dir space
;
; source file open, dest file open
; copy until end of file on source
;
5.3 A Sample Copy Program CP/M Operating System Manual
5-37