Commit Graph

54 Commits

Author SHA1 Message Date
01e14d418a FIX: No longer allow exceeding printf buffer, instead print an error to stdout. Temporary fix
Later, if buffer is full, print current buffer and reset buffer so that there is no limit.
2025-06-25 16:23:59 +02:00
e020fb15c1 FIX: itoa() not saving rbx 2025-06-25 16:23:02 +02:00
3e8bcdeb01 Get rid of gcc, adds exit() 2025-06-25 14:58:02 +02:00
36d21ca18b Ignore invalid specifiers in printf() 2025-06-25 14:40:01 +02:00
5ead6ebdb1 Add support for '%%' in printf() 2025-06-25 14:21:46 +02:00
1e095bec77 Add printf() comment, return length of printed message 2025-06-25 13:56:30 +02:00
d0769f6ffc Add support for %c in printf() 2025-06-25 13:49:30 +02:00
74178a6a2d FIX: Loading arg from stack to wrong register (rsi->rdi) for %d 2025-06-25 13:43:06 +02:00
266cb57d1c Proper SYS V ABI use (don't restore rsi in itoa) 2025-06-25 13:31:48 +02:00
f5e1143138 Fix issue in printf() with %d --needed to push+pop several registers before/after itoa() call 2025-06-25 13:29:26 +02:00
4438abda11 Dump current state of printf() (adding %d support), adds itoa() 2025-06-25 13:07:18 +02:00
1de7731139 printf() comment cleanup 2025-06-25 12:12:26 +02:00
3a55212f3e Fix stack usage for printf(), add test 2025-06-25 12:00:05 +02:00
7054061734 Working '%s' for printf() (args in stack yet untested) 2025-06-25 11:42:44 +02:00
855487e857 printf() no longer crashes, can print string but now aborts after printing first string 2025-06-25 11:31:01 +02:00
dcb2b8acae Start writing printf() D: 2025-06-25 11:08:56 +02:00
1969294f02 Use direct value for mode in fopen() instead of pointer -- mode is always 1 char so no need to store mode letters in memory 2025-06-25 10:15:21 +02:00
692c96512e Return -22 (EINVAL) in fopen() if incorrect mode was supplied 2025-06-25 10:09:23 +02:00
06fef96cf4 Fix return value comment for fwrite() 2025-06-25 10:03:57 +02:00
c4ce3212e7 Assure fwrite() and fclose() only work if FD>=3, exit with -9 (EBADF) otherwise 2025-06-25 10:02:59 +02:00
3cbf9e8ce0 Fix file.asm return value comments 2025-06-25 09:56:40 +02:00
fbea8d0322 Adds fopen(), fwrite(), fclose() 2025-06-25 09:38:42 +02:00
9d265e3db6 Fix strcmp() 2025-06-25 08:35:25 +02:00
6df67b18f4 Improve todo/fix comment for strcmp 2025-06-24 19:08:00 +02:00
7dd7217e08 Improved test message (msgStrcmp) 2025-06-24 19:07:30 +02:00
6cb90256e7 Fix return value comment for strlclr() 2025-06-24 19:00:43 +02:00
354024c1b7 Rewrite tests (most accidentally done in previous commit), add TODO (bugfix) in strcmp() 2025-06-24 18:45:17 +02:00
e2de729a87 Adds strclr() and strlclr() 2025-06-24 18:29:18 +02:00
46051d0082 FIX: strcat() returning wrong address 2025-06-24 17:53:56 +02:00
035f3baabf Restore NL in console.asm -- syscall 1 requires mem addr, not constant 0xA 2025-06-24 17:02:49 +02:00
2005adf25f Use NL/EOS instead of 10/0, use constants.asm for global constants 2025-06-24 16:34:06 +02:00
e48e91630e Fix test msg/comment (size for strlcpy 8=>5) 2025-06-24 15:54:32 +02:00
e620754b13 Adds strlcpy() 2025-06-24 15:53:24 +02:00
d3e7f47259 Store rcx to r11 instead of stack in tolower()/toupper() tests 2025-06-24 15:08:54 +02:00
f10b2f3c88 Save/restore rdi to r10 instead of stack in strcat(),puts() 2025-06-24 15:06:21 +02:00
f4162ed21a (alternative) strcmp() 2025-06-23 17:46:42 +02:00
63552b3c64 Allow enabling/disabling tests 2025-06-23 17:16:24 +02:00
84264e7f5a Test toupper() and tolower() for entire string 2025-06-23 17:10:56 +02:00
6463c3711a FIX: Return value of strcpy() 2025-06-23 16:28:05 +02:00
2e7a7c7b5f Fix: EOS not copied to dest in strcpy() 2025-06-23 16:21:21 +02:00
d718f1ff1d Don't zero rax in tolower/toupper; they both call islower/isupper which already zeroes rax 2025-06-23 15:59:40 +02:00
acd0afbeba Fix jumps in tolower/toupper; .dtu/.dtl would always be reached. 2025-06-23 15:55:38 +02:00
3ec591aab4 tolower(), toupper() 2025-06-23 15:47:05 +02:00
ed83e83885 Set rax to original rdi in strcat() (make sure dest pointer is returned) 2025-06-23 15:35:41 +02:00
0ee1142b75 Add null terminator to dest in strcpy() 2025-06-23 15:32:40 +02:00
e92afdb199 Remove unneeded saving of rdi in strcpy() 2025-06-23 15:30:39 +02:00
26c150cec0 Remove unneeded saving of rdi in strcat() 2025-06-23 15:27:02 +02:00
4aee0916db Remove unneeded saving of rdi in print() 2025-06-23 15:25:10 +02:00
c798157fd8 Use conditional moves in max[u]()/min[u]() 2025-06-23 15:24:30 +02:00
3a7b0b5cda Add clean to makefile 2025-06-23 15:14:56 +02:00