Upload files to "/"

This commit is contained in:
2026-02-08 15:45:17 +00:00
commit 08af048d76
4 changed files with 168 additions and 0 deletions

21
Read.md Normal file
View File

@@ -0,0 +1,21 @@
# StdWullie
***
this lib is an attempt to make some better functions without the use of glibC
## features
- print: just prints text to console
- ColorPrint: changes the foreground color of text to an ANSI color
- BackgroundPrint: changs the background color of text to an ANSI color
***
## how to build
to build all thats needed is the gcc compiler and a version of linux
### commands
- gcc -c -fPIC main.c func.c -o stdwullie.o
- gcc -shared -o libstdWullie.so stdWullie.o

75
funcs.c Normal file
View File

@@ -0,0 +1,75 @@
// this code is licenced under Wrathmark licence
// © 2026 wullie wulliestudio.com
// please see attached licence for full usage and rights
#include "stdWullie.h"
// syscall1
long syscall1(long number, long arg1){
long result;
// asm for a system call with one arg
__asm__ __volatile(
"syscall"
: "=a"(result)
: "a"(number), "D"(arg1)
: "rcx", "r11", "memory"
);
return result;
}
// syscall3
long syscall3(long number, long arg1, long arg2, long arg3){
long result;
// asm for a system call with 3 args
__asm__ __volatile(
"syscall"
: "=a"(result)
: "a"(number), "D"(arg1), "S"(arg2), "d"(arg3)
: "rcx", "r11", "memory"
);
return result;
}
// our own exit LINUX ONLY
void exit(int code){
syscall1(SYS_exit, code);
for(;;){}
}
// handles the length of a string for print
long unsigned strlen(char *string){
char *cursor = string;
while(*cursor){
cursor++;
}
long unsigned result = cursor - string;
return result;
}
// print
void print(char *string){
syscall3(SYS_write, 1, (long)string, strlen(string));
}
// it can do everythig print can but better
void ColorPrint(char *string, const char *color){
syscall3(SYS_write, 1, (long)color, strlen(color));
syscall3(SYS_write, 1, (long)string, strlen(string));
syscall3(SYS_write, 1, (long)NORMAL, sizeof(NORMAL)-1);
}
// instead of changing the foreground it changes the background
void BackgroundPrint(char *string, const char *Bcolor){
syscall3(SYS_write, 1, (long)Bcolor, strlen(Bcolor));
syscall3(SYS_write, 1, (long)string, strlen(string));
syscall3(SYS_write, 1, (long)NORMAL, sizeof(NORMAL)-1);
}

27
main.c Normal file
View File

@@ -0,0 +1,27 @@
// this code is licenced under Wrathmark licence
// © 2026 wullie wulliestudio.com
// please see attached licence for full usage and rights
#include "stdWullie.h"
int main(){
print("look Ma no stdlib\n");
ColorPrint("NOW WITH COLORS\n", RED);
BackgroundPrint("and backgrounds\n", BBLUE);
return 0;
}
// #I say softly to myself "FUCK YOUR STDLIB"#
// handles the main loop
__attribute__((naked)) void _start(){
__asm__ __volatile__(
"xor %ebp, %ebp\n"
"mov (%rsp), %rdi\n"
"lea 8(%rsp), %rsi\n"
"and $-16, %rsp\n"
"call main\n"
"mov %rax, %rdi\n"
"call exit\n"
);
}

45
stdWullie.h Normal file
View File

@@ -0,0 +1,45 @@
// this code is licenced under Wrathmark licence
// © 2026 wullie wulliestudio.com
// please see attached licence for full usage and rights
#ifndef MIAN_h
#define MAIN_h
// ANSI colors
// foreground
#define BLACK "\x1b[30m"
#define RED "\x1b[31m"
#define GREEN "\x1b[32m"
#define YELLOW "\x1b[33m"
#define BLUE "\x1b[34m"
#define MAGENTA "\x1b[35m"
#define CYAN "\x1b[36m"
#define WHITE "\x1b[37m"
#define NORMAL "\x1b[m"
// background
#define BBLACK "\x1b[40m"
#define BRED "\x1b[41m"
#define BGREEN "\x1b[42m"
#define BYELLOW "\x1b[43m"
#define BBLUE "\x1b[44m"
#define BMAGENTA "\x1b[45m"
#define BCYAN "\x1b[46m"
#define BWHITE "\x1b[47m"
// SYS calls
#define SYS_write 1
#define SYS_exit 60
// funcs
void ColorPrint(char *string, const char *color);
void BackgroundPrint(char *string, const char *Bcolor);
// basic funcs
void exit(int code);
long unsigned strlen(char *string);
void print(char *string);
#endif