Changes
<pre>
;; 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
</pre>
;; 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
</pre>