; master library - (pf.lib) ; ; Description: ; ファイルを開く ; ; Functions/Procedures: ; bf_t bopenr(const char *fname); ; ; Parameters: ; fname ; ; Returns: ; 0 エラー。pferrnoに種別が格納される。 ; PFENOMEM メモリ不足 ; PFENOTOPEN ファイルが開けない ; 0以外 成功。以後この値を b*ファイル関数群に渡すこと。 ; ; Binding Target: ; Microsoft-C / Turbo-C / Turbo Pascal ; ; Running Target: ; MS-DOS ; ; Requiring Resources: ; CPU: 186 ; ; Notes: ; ; ; Assembly Language Note: ; ; ; Compiler/Assembler: ; TASM 3.0 ; OPTASM 1.6 ; ; Author: ; iR ; 恋塚昭彦 ; ; Revision History: ; BOPENR.ASM 1 729 94-06-05 13:01 ; 95/ 1/10 Initial: bopenr.asm/master.lib 0.23 ; 95/ 2/14 [M0.22k] mem_AllocID対応 func BOPENR ; bopenr() { push BP mov BP,SP ;arg fname:dataptr fname = (RETSIZE+1)*2 mov mem_AllocID,MEMID_bfile mov AX,bbufsiz add AX,size BFILE push AX _call HMEM_ALLOCBYTE jc short @@_nomem mov ES,AX ; BFILE構造体のセグメント if LDATA push word ptr [BP+fname+2] endif push word ptr [BP+fname] _call DOS_ROPEN jc short @@_cantopen mov ES:[b_hdl],AX mov ES:[b_left],0 mov AX,bbufsiz mov ES:[b_siz],AX mov AX,ES pop BP ret (DATASIZE)*2 @@_nomem: mov byte ptr pferrno,PFENOMEM jmp short @@_error @@_cantopen: push ES _call HMEM_FREE mov byte ptr pferrno,PFENOTOPEN @@_error: clr AX pop BP ret (DATASIZE)*2 endfunc ; }