home *** CD-ROM | disk | FTP | other *** search
-
- ; *******************************************************
- ; * *
- ; * Turbo Pascal Run-time Library *
- ; * Textfile Integer I/O *
- ; * *
- ; * Copyright (c) 1988,92 Borland International *
- ; * *
- ; *******************************************************
-
- TITLE TINT
-
- INCLUDE SE.ASM
-
- DATA SEGMENT WORD PUBLIC
-
- ; Externals
-
- EXTRN InOutRes:WORD
-
- DATA ENDS
-
- CODE SEGMENT BYTE PUBLIC
-
- ASSUME CS:CODE,DS:DATA
-
- ; Externals
-
- EXTRN Str2Int:NEAR,Int2Str:NEAR,ReadText:NEAR
- EXTRN WriteBuffer:NEAR,WriteBlanks:NEAR
-
- ; Publics
-
- PUBLIC ReadInt,WriteInt
-
- ; Read standard procedure (Integer)
-
- ReadInt:
-
- ARG FileP,DWORD,1
- LOC NumBuf,BYTE,32
-
- ENTRY WINFAR
- LES BX,FileP
- MOV AX,OFFSET CS:@@10
- MOV CX,32
- LEA DI,NumBuf
- MOV DX,SS
- CALL ReadText
- MOV CX,DI
- LEA DI,NumBuf
- SUB CX,DI
- JE @@2
- PUSH SS
- POP ES
- CALL Str2Int
- JC @@1
- JCXZ @@3
- @@1: MOV InOutRes,106
- @@2: XOR AX,AX
- MOV DX,AX
- @@3: EXIT 0
- @@10: LODSB
- CMP AL,' '
- JA @@12
- CMP AL,eof
- JE @@13
- CMP SI,BX
- JNE @@10
- MOV AX,OFFSET CS:@@10
- RET
- @@11: LODSB
- CMP AL,' '
- JBE @@13
- @@12: STOSB
- CMP SI,BX
- LOOPNE @@11
- JCXZ @@14
- MOV AX,OFFSET CS:@@11
- RET
- @@13: DEC SI
- @@14: XOR AX,AX
- RET
-
- ; Write standard procedure (Integer)
-
- WriteInt:
-
- ARG FileP,DWORD,1
- ARG Value,DWORD,1
- ARG Width,WORD,1
- LOC NumBuf,BYTE,32
-
- ENTRY WINFAR
- MOV AX,Value.w0
- MOV DX,Value.w2
- LEA DI,NumBuf[32]
- PUSH SS
- POP ES
- CALL Int2Str
- LES BX,FileP
- MOV DX,Width
- SUB DX,CX
- JLE @@1
- PUSH CX
- PUSH DI
- CALL WriteBlanks
- POP DI
- POP CX
- @@1: MOV AX,CX
- MOV SI,DI
- MOV DX,SS
- CALL WriteBuffer
- EXIT 6
-
- CODE ENDS
-
- END
-