+ ; mov eax, 4
+ ; mov ebx, 1
+ ; mov ecx, [ebp-STR_PTR]
+ ; add ecx, [ebp-CHAR_COUNT]
+ ; mov edx, 1
+ ; int 0x80
+
+ ; check for newline
+ mov eax, [ebp-STR_PTR]
+ add eax, [ebp-CHAR_COUNT]
+ cmp DWORD [eax], 0x0a
+ jne _readLine_not_newline
+ mov ebx, 0
+ jmp _readLine_exit
+ _readLine_not_newline:
+
+ ; check for eof
+ mov eax, [ebp-STR_PTR]
+ add eax, [ebp-CHAR_COUNT]
+ cmp DWORD [eax], 0x05
+ jne _readLine_not_eof
+ mov ebx, 1
+ jmp _readLine_exit
+ _readLine_not_eof:
+
+ add DWORD [ebp-CHAR_COUNT], 1
+ jmp _readLine_loop
+
+ _readLine_exit:
+
+ mov eax, DWORD [ebp-STR_PTR]
+
+ %undef _FILE_HANDLE
+ %undef CHAR_COUNT
+ %undef BLOCK_COUNT
+ %undef STR_PTR