title Module from library BASE_5 : WRRNDR name ('WRRNDR') maclib baselib.lib ; Write a record with variable length ; Copyright (C) Werner Cirsovius ; Hohe Weide 44 ; D-20253 Hamburg ; Tel.: +49-40-4223247 ; Version 1.1 June 1987 ; ENTRY Accu holds record length (1 .. 255) ; Reg pair BC holds record number (1 .. n) ; Reg pair DE holds FCB of opened file ; Reg pair HL holds pointer of text to be write ; EXIT Carry set on error, either disk or parameter error ; Carry reset on successfull operation entry wrrndr extrn @tsrec,@gtphs,@gtrec,@mvrec,@fxnxt,rndwrt wrrndr: call @tsrec ; Test valid record number ret c ; Exit on parameter error call @gtphs ; Get 'physical' sector wrlop: push de call @gtrec ; Get a random record jr c,wrerr ; Exit on error ex de,hl call @mvrec ; Move record from buffer jr z,endwrt ; Ok, that's it ex de,hl pop de call rndwrt ; Write record ret c ; End on error call @fxnxt ; Else fix for another record jr wrlop endwrt: pop de jp rndwrt ; Write second record wrerr: pop de ret end