span class=postbodyMS-DOS 의 시스템콜을 개략적으로 이해하기 쉽도록 만들었던 겁니다. br / 이거 그대로 쓰려고 하지 마시고 자신의 라이브러리로 만들어 버리세요~ br / br / 참고로 모든 함수는 Pascall 호출규칙입니다. br / br / br / /spantable align=center border=0 cellpadding=3 cellspacing=1 width=90%tbodytr tdspan class=genmedb코드:/b/span/td /tr tr td class=code br / COMMENT # br / br / NOTE : 2000.10.07 (SAT) br / br / nbsp; - MZLIB : DOS.LIB br / br / # br / br / br / br / DEF_ASM_DOSnbsp; nbsp; nbsp; nbsp; EQU DOS.ASM br / br / br / br / INCLUDEnbsp; nbsp; nbsp; nbsp; nbsp; nbsp; COMMON.INC br / br / br / br / PUBLICnbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp;DOS_chdir br / br / PUBLICnbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp;DOS_findfirst br / br / PUBLICnbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp;DOS_findnext br / br / PUBLICnbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp;DOS_getcurdir br / br / PUBLICnbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp;DOS_getcwd br / br / PUBLICnbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp;DOS_getdisk br / br / PUBLICnbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp;DOS_mkdir br / br / PUBLICnbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp;DOS_rmdir br / br / PUBLICnbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp;DOS_setdisk br / br / PUBLICnbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp;DOS_creat br / br / PUBLICnbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp;DOS_open br / br / PUBLICnbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp;DOS_close br / br / PUBLICnbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp;DOS_unlink br / br / PUBLICnbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp;DOS_read br / br / PUBLICnbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp;DOS_write br / br / PUBLICnbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp;DOS_lseek br / br / PUBLICnbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp;DOS_getfileattr br / br / PUBLICnbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp;DOS_setfileattr br / br / br / br / nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp;ASSUME CS:CODE_DOS, DS:DATA_DOS, ES:NOTHING, SS:STACK_DEFAULT br / br / CODE_DOSnbsp; nbsp; nbsp; nbsp; nbsp; nbsp;SEGMENT br / br / DOS_chdirnbsp; nbsp; nbsp; nbsp; nbsp; PROC FAR ; unsigned int far pascal DOS_chdir(void far *) br / br / nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp;PUSH BP br / br / nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp;MOV BP, SP br / br / nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp;PUSH DS br / br / nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp;MOV AX, 3B00h br / br / nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp;LDS DX, DWORD PTR [BP + 06h]nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; ; Path string pointer (End of ASCII_ENDSTRING) br / br / nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp;INT DEF_INT_Dos br / br / nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp;POP DS br / br / nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp;POP BP br / br / nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp;RETF 4 br / br / DOS_chdirnbsp; nbsp; nbsp; nbsp; nbsp; ENDP br / br / DOS_findfirstnbsp; nbsp; nbsp; PROC FAR ; unsigned int far pascal DOS_findfirst(void far *, void far *, unsigned int) br / br / nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp;PUSH BP br / br / nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp;MOV BP, SP br / br / nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp;PUSH DS br / br / nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp;MOV AX, 1A00h br / br / nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp;LDS DX, DWORD PTR [BP + 08h]nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; ; File name list string br / br / nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp;INT DEF_INT_Dos br / br / nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp;MOV AX, 4E00h br / br / nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp;MOV CX, WORD PTR [BP + 06h]nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp;; Attrib br / br / nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp;LDS DX, DWORD PTR [BP + 0Ch]nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; ; DTA br / br / nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp;INT DEF_INT_Dos br / br / nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp;POP DS br / br / nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp;POP BP br / br / nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp;RETF 4 + 4 + 2 br / br / DOS_findfirstnbsp; nbsp; nbsp; ENDP br / br / DOS_findnextnbsp; nbsp; nbsp; nbsp;PROC FAR ; unsigned int far pascal DOS_findnext(void far *) br / br / nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp;PUSH BP br / br / nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp;MOV BP, SP br / br / nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp;PUSH DS br / br / nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp;MOV AX, 1A00h br / br / nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp;LDS DX, DWORD PTR [BP + 06h]nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; ; DTA br / br / nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp;INT DEF_INT_Dos br / br / nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp;MOV AX, 4F00h br / br / nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp;INT DEF_INT_Dos br / br / nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp;POP DSnbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; br / br / nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp;POP BP br / br / nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp;RETF 4 br / br / DOS_findnextnbsp; nbsp; nbsp; nbsp;ENDP br / br / DOS_getcurdirnbsp; nbsp; nbsp; PROC FAR ; unsigned int far pascal DOS_getcurdir(unsigned int, void far *) br / br / nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp;PUSH BP br / br / nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp;MOV BP, SP br / br / nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp;PUSH DS br / br / nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp;MOV AX, 4700h br / br / nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp;MOV DX, WORD PTR [BP + 0Ah]nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp;; Length br / br / nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp;LDS SI, DWORD PTR [BP + 06h]nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; ; Buffer br / br / nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp;INT DEF_INT_Dos br / br / nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp;POP DS br / br / nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp;POP BP br / br / nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp;RETF 2 + 4 br / br / DOS_getcurdirnbsp; nbsp; nbsp; ENDP br / br / DOS_getcwdnbsp; nbsp; nbsp; nbsp; nbsp;PROC FAR ; void far * far pascal DOS_getcwd(void far *, unsigned int) br / br / nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp;PUSH BP br / br / nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp;MOV BP, SP br / br / nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp;SUB SP, WORD PTR [BP + 06h]nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp;; Length br / br / nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp;DEC SP br / br / nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp;CALL FAR PTR CODE_DOS:DOS_getdisk br / br / nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp;ADD AL, 'A' br / br / nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp;LES DI, DWORD PTR [BP + 08h]nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; ; Buffer br / br / nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp;CLD br / br / nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp;STOSB br / br / nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp;MOV AL, ':' br / br / nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp;STOSB br / br / nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp;MOV AL, '\' br / br / nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp;STOSB br / br / nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp;MOV AX, BP br / br / nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp;SUB AX, WORD PTR [BP + 06h]nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp;; Length br / br / nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp;DEC AX br / br / nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp;PUSH AX br / br / nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp;PUSH DEF_Null br / br / nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp;PUSH SS br / br / nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp;PUSH AX br / br / nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp;CALL FAR PTR CODE_DOS:DOS_getcurdir br / br / nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp;POP AX br / br / br / nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp;PUSH DS br / br / nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp;PUSH SS br / br / nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp;POP DS br / br / nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp;MOV SI, AX br / br / nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp;MOV CX, WORD PTR [BP + 06h]nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp;; Length br / br / nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp;SUB CX, 0004h br / br / nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp;CLD br / br / nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp;REPZ MOVSB br / br / nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp;XOR AL, AL br / br / nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp;STOSB br / br / nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp;POP DS br / br / nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp;MOV AX, WORD PTR [BP + 08h]nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp;; Low Buffer br / br / nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp;MOV DX, WORD PTR [BP + 0Ah]nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp;; High Buffer br / br / nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp;MOV SP, BP br / br / nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp;POP BP br / br / nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp;RETF 4 + 2 br / br / DOS_getcwdnbsp; nbsp; nbsp; nbsp; nbsp;ENDP br / br / DOS_getdisknbsp; nbsp; nbsp; nbsp; PROC FAR ; unsigned int far pascal DOS_getdisk(void) br / br / nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp;MOV AX, 1900h br / br / nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp;INT DEF_INT_Dos br / br / nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp;XOR AH, AH br / br / nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp;RETFnbsp; br / br / DOS_getdisknbsp; nbsp; nbsp; nbsp; ENDP br / br / DOS_mkdirnbsp; nbsp; nbsp; nbsp; nbsp; PROC FAR ; unsigned int far pascal DOS_mkdir(void far *) br / br / nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp;PUSH BP br / br / nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp;MOV BP, SP br / br / nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp;PUSH DS br / br / nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp;MOV AX, 3900h br / br / nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp;LDS DX, DWORD PTR [BP + 06h]nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; ; Directory name br / br / nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp;INT DEF_INT_Dos br / br / nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp;POP DS br / br / nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp;POP BP br / br / nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp;RETF 4 br / br / DOS_mkdirnbsp; nbsp; nbsp; nbsp; nbsp; ENDP br / br / DOS_rmdirnbsp; nbsp; nbsp; nbsp; nbsp; PROC FAR ; unsigned int far pascal DOS_rmdir(void far *) br / br / nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp;PUSH BP br / br / nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp;MOV BP, SP br / br / nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp;PUSH DS br / br / nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp;MOV AX, 3A00h br / br / nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp;LDS DX, DWORD PTR [BP + 06h]nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; ; Directory name br / br / nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp;INT DEF_INT_Dos br / br / nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp;POP DS br / br / nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp;POP BP br / br / nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp;RETF 4 br / br / DOS_rmdirnbsp; nbsp; nbsp; nbsp; nbsp; ENDP br / br / DOS_setdisknbsp; nbsp; nbsp; nbsp; PROC FAR ; unsigned int far pascal DOS_setdisk(unsigned int) br / br / nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp;PUSH BP br / br / nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp;MOV BP, SP br / br / nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp;MOV AX, 0E00h br / br / nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp;MOV DX, WORD PTR [BP + 06h]nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp;; Disk number br / br / nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp;INT DEF_INT_Dos br / br / nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp;XOR AH, AH br / br / nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp;POP BP br / br / nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp;RETF 2 br / br / DOS_setdisknbsp; nbsp; nbsp; nbsp; ENDP br / br / DOS_creatnbsp; nbsp; nbsp; nbsp; nbsp; PROC FAR ; unsigned int far pascal DOS_creat(void far *, unsigned int) br / br / nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp;PUSH BP br / br / nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp;MOV BP, SP br / br / nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp;PUSH DS br / br / nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp;MOV AX, 3C00h br / br / nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp;MOV CX, WORD PTR [BP + 06h]nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp;; Attrib br / br / nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp;LDS DX, DWORD PTR [BP + 08h]nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; ; File name br / br / nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp;INT DEF_INT_Dos br / br / nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp;JNC SHORT L_DOS_creat_00 br / br / nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp;MOV AX, 0FFFFh br / br / L_DOS_creat_00nbsp; nbsp; nbsp;LABEL SHORT br / br / nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp;POP DS br / br / nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp;POP BP br / br / nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp;RETF 4 + 2 br / br / DOS_creatnbsp; nbsp; nbsp; nbsp; nbsp; ENDP br / br / DOS_opennbsp; nbsp; nbsp; nbsp; nbsp; nbsp;PROC FAR ; unsigned int far pascal DOS_open(void far *, unsigned int) br / br / nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp;PUSH BP br / br / nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp;MOV BP, SP br / br / nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp;PUSH DS br / br / nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp;MOV AX, 3D00h br / br / nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp;MOV CX, WORD PTR [BP + 06h]nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp;; Attrib br / br / nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp;LDS DX, DWORD PTR [BP + 08h]nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; ; File name br / br / nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp;INT DEF_INT_Dos br / br / nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp;JNC SHORT L_DOS_open_00 br / br / nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp;MOV AX, 0FFFFh br / br / L_DOS_open_00nbsp; nbsp; nbsp; LABEL SHORT br / br / nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp;POP DS br / br / nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp;POP BP br / br / nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp;RETF 4 + 2 br / br / DOS_opennbsp; nbsp; nbsp; nbsp; nbsp; nbsp;ENDP br / br / DOS_closenbsp; nbsp; nbsp; nbsp; nbsp; PROC FAR ; unsigned int far pascal DOS_close(unsigned int) br / br / nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp;PUSH BP br / br / nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp;MOV BP, SP br / br / nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp;MOV AX, 3E00h br / br / nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp;MOV BX, WORD PTR [BP + 06h]nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp;; Handle br / br / nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp;INT DEF_INT_Dos br / br / nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp;POP BP br / br / nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp;RETF 2 br / br / DOS_closenbsp; nbsp; nbsp; nbsp; nbsp; ENDP br / br / DOS_unlinknbsp; nbsp; nbsp; nbsp; nbsp;PROC FAR ; unsigned int far pascal DOS_unlink(void far *) br / br / nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp;PUSH BP br / br / nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp;MOV BP, SP br / br / nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp;PUSH DS br / br / nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp;MOV AX, 4100h br / br / nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp;LDS DX, DWORD PTR [BP + 06h]nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; ; File name br / br / nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp;INT DEF_INT_Dos br / br / nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp;POP DS br / br / nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp;POP BP br / br / nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp;RETF 4 br / br / DOS_unlinknbsp; nbsp; nbsp; nbsp; nbsp;ENDP br / br / DOS_readnbsp; nbsp; nbsp; nbsp; nbsp; nbsp;PROC FAR ; unsigned int far pascal DOS_read(unsigned int, void far *, unsigned int) br / br / nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp;PUSH BP br / br / nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp;MOV BP, SP br / br / nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp;PUSH DS br / br / nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp;MOV AX, 3F00h br / br / nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp;MOV BX, WORD PTR [BP + 0Ch]nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp;; Handle br / br / nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp;MOV CX, WORD PTR [BP + 06h]nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp;; Length br / br / nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp;LDS DX, DWORD PTR [BP + 08h]nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; ; Buffer br / br / nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp;INT DEF_INT_Dos br / br / nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp;JNC SHORT L_DOS_read_00 br / br / nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp;MOV AX, 0FFFFh br / br / L_DOS_read_00nbsp; nbsp; nbsp; LABEL SHORTnbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; br / br / nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp;POP DS br / br / nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp;POP BP br / br / nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp;RETF 2 + 4 + 2 br / br / DOS_readnbsp; nbsp; nbsp; nbsp; nbsp; nbsp;ENDP br / br / DOS_writenbsp; nbsp; nbsp; nbsp; nbsp; PROC FAR ; unsigned int far pascal DOS_write(unsigned int, void far *, unsigned int) br / br / nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp;PUSH BP br / br / nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp;MOV BP, SP br / br / nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp;PUSH DS br / br / nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp;MOV AX, 4000h br / br / nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp;MOV BX, WORD PTR [BP + 0Ch]nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp;; Handle br / br / nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp;MOV CX, WORD PTR [BP + 06h]nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp;; Length br / br / nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp;LDS DX, DWORD PTR [BP + 08h]nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; ; Buffer br / br / nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp;INT DEF_INT_Dos br / br / nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp;JNC SHORT L_DOS_write_00 br / br / nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp;MOV AX, 0FFFFh br / br / L_DOS_write_00nbsp; nbsp; nbsp;LABEL SHORTnbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; br / br / nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp;POP DS br / br / nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp;POP BP br / br / nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp;RETF 2 + 4 + 2 br / br / DOS_writenbsp; nbsp; nbsp; nbsp; nbsp; ENDP br / br / DOS_lseeknbsp; nbsp; nbsp; nbsp; nbsp; PROC FAR ; unsigned int far pascal DOS_lseek(unsigned int, unsigned long, unsigned int) br / br / nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp;PUSH BP br / br / nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp;MOV BP, SP br / br / nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp;MOV AH, 42h br / br / nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp;MOV AL, BYTE PTR [BP + 06h]nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp;; Mode br / br / nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp;MOV BX, WORD PTR [BP + 0Ch]nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp;; Handle br / br / nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp;MOV CX, WORD PTR [BP + 0Ah]nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp;; High Offset br / br / nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp;MOV DX, WORD PTR [BP + 08h]nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp;; Low Offset br / br / nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp;INT DEF_INT_Dos br / br / nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp;POP BP br / br / nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp;RETF 2 + 4 + 2 br / br / DOS_lseeknbsp; nbsp; nbsp; nbsp; nbsp; ENDP br / br / DOS_getfileattrnbsp; nbsp; PROC FAR ; unsigned int far pascal DOS_getfileattr(void far *, unsigned int far *) br / br / nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp;PUSH BP br / br / nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp;MOV BP, SP br / br / nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp;PUSH DS br / br / nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp;MOV AX, 4300h br / br / nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp;LDS DX, DWORD PTR [BP + 0Ah]nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; ; File name br / br / nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp;INT DEF_INT_Dos br / br / nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp;LDS BX, DWORD PTR [BP + 06h]nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; ; Attrib value pointer br / br / nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp;MOV WORD PTR [BX], CX br / br / nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp;POP DS br / br / nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp;POP BP br / br / nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp;RETF 4 + 4 br / br / DOS_getfileattrnbsp; nbsp; ENDP br / br / DOS_setfileattrnbsp; nbsp; PROC FAR ; unsigned int far pascal DOS_setfileattr(void far *, unsigned int) br / br / nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp;PUSH BP br / br / nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp;MOV BP, SP br / br / nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp;PUSH DS br / br / nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp;MOV AX, 4301h br / br / nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp;MOV CX, WORD PTR [BP + 06h]nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp;; Attrib br / br / nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp;LDS DX, DWORD PTR [BP + 08h]nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; ; File name br / br / nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp;INT DEF_INT_Dos br / br / nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp;POP DS br / br / nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp;POP BP br / br / nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp;RETF 4 + 2 br / br / DOS_setfileattrnbsp; nbsp; ENDP br / br / CODE_DOSnbsp; nbsp; nbsp; nbsp; nbsp; nbsp;ENDS br / br / br / br / nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp;ASSUME CS:CODE_DOS, DS:DATA_DOS, ES:NOTHING, SS:STACK_DEFAULT br / br / DATA_DOSnbsp; nbsp; nbsp; nbsp; nbsp; nbsp;SEGMENT br / br / DATA_DOSnbsp; nbsp; nbsp; nbsp; nbsp; nbsp;ENDS br / br / br / br / nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp;ASSUME CS:CODE_DOS, DS:BSS_DOS, ES:NOTHING, SS:STACK_DEFAULT br / br / BSS_DOSnbsp; nbsp; nbsp; nbsp; nbsp; nbsp; SEGMENT br / br / BSS_DOSnbsp; nbsp; nbsp; nbsp; nbsp; nbsp; ENDS br / br / nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp;END br / br / br / br / ; End of source /td/tr/tbody/table
크리에이티브 커먼즈 라이센스
Creative Commons License
2007/05/05 01:56 2007/05/05 01:56
받은 트랙백이 없고, 댓글이 없습니다.

댓글+트랙백 RSS :: http://blog.minzkn.com/rss/response/38

댓글+트랙백 ATOM :: http://blog.minzkn.com/atom/response/38

트랙백 주소 :: http://blog.minzkn.com/trackback/38

트랙백 RSS :: http://blog.minzkn.com/rss/trackback/38

트랙백 ATOM :: http://blog.minzkn.com/atom/trackback/38

댓글을 달아 주세요

댓글 RSS 주소 : http://blog.minzkn.com/rss/comment/38
댓글 ATOM 주소 : http://blog.minzkn.com/atom/comment/38