Programming:An example to write a file byte-by-byte
From CPCWiki - THE Amstrad CPC encyclopedia!
;; This example shows how to write a file byte-by-byte. ;; ;; This code can be used to write a headerless file, ;; or to write a file with your own header. .cas_out_open equ &bc8c .cas_out_close equ &bc8f .cas_out_char equ &bc95 ld hl,&4000 ;; start address of data to write (example) ld bc,&4000 ;; length of data to write (example) push hl push bc ;; open output file ld b,end_filename-filename ld hl,filename ld de,two_k_buffer call cas_out_open ;; at this point the file will be opened for output. ;; A header is *not* created or written to the output ;; file pop bc pop hl ;; HL = start address of data to write ;; BC = length of data to write .next_byte ld a,(hl) ;; read byte from memory inc hl ;; increment point ;; write byte to output file push bc push hl call cas_out_char pop hl pop bc ;; decrement count (BC = number of bytes remaining to write to ;; output file) dec bc ;; BC = 0 -> finished writing ;; BC <> 0 -> not finished. write more bytes ld a,b or c jr nz,next_byte ;; close the output file call cas_out_close ret ;;---------------------------------------------------------------- ;; this is the filename of the output file .filename defb "datafile.bin" .end_filename ;;---------------------------------------------------------------- ;; this buffer is filled with data which will be written to the output ;; file .two_k_buffer defs 2048