Commit Graph

53 Commits

Author SHA1 Message Date
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
2f5e3202db min[u](),max[u](),islower(),isupper(),print(),puts(),strlen(),strcpy(),strcat() 2025-06-23 15:07:55 +02:00