diff options
Diffstat (limited to 'userspace')
| -rw-r--r-- | userspace/fonts/Makefile | 5 | ||||
| -rw-r--r-- | userspace/fonts/binarize.py | 87 | ||||
| -rw-r--r-- | userspace/fonts/binfont.src | 1235 | ||||
| -rw-r--r-- | userspace/foolshell.c | 24 |
4 files changed, 1339 insertions, 12 deletions
diff --git a/userspace/fonts/Makefile b/userspace/fonts/Makefile new file mode 100644 index 0000000..2eeaf37 --- /dev/null +++ b/userspace/fonts/Makefile @@ -0,0 +1,5 @@ +############ fool-font ############ +binfont.bin: binfont.src + python3.2 binarize.py $< $@ +clean: + -rm binfont.bin diff --git a/userspace/fonts/binarize.py b/userspace/fonts/binarize.py new file mode 100644 index 0000000..1abb9d6 --- /dev/null +++ b/userspace/fonts/binarize.py @@ -0,0 +1,87 @@ +import sys + +def binarize(file_in, file_out): + + """ Create a binary file from an ASCII file. Everything + but '0' and '1' (alternatively '_' and 'X') is ignored + from the input file. """ + + print ("binarizing " + file_in + " to "+ file_out + ".") + + try: + + f=open(file_in,'r') + + try: + + o=open(file_out,'wb') + + try: + + while True: + + b=readnext(f) + if b==-1: + break + + o.write(bytes([b])) + + except IOError: + print("IOError happened during processing."); + print("I am closing the input and ouput files and aborting."); + print("Warning: The output file is very likely incomplete."); + + o.close() + + except IOError: + print("IOError opening output file: " + file_out); + + f.close() + + except IOError: + print("IOError opening input file: " + file_in); + + +def readnext(f): + + """ Read next 'byte' from the given ASCII file (BufferedWriter) + everything but '_','X','0','1' is ignored. + Returns the byte as integer or -1 on EOF """ + + l=0 + b="" + + while l<8: + + c=f.read(1) + + if not c: + return -1 + + if c=="0" or c=='_': + l+=1 + b+="0" + + if c=="1" or c=='X': + l+=1 + b+="1" + + return int(b,2) + +def usage(): + + """ Prints usage information to sdtout """ + + print ("python3.x binarize.py [file_in] [file_out]") + + + +""" direct use """ + +if __name__ == "__main__": + + if(len(sys.argv)==3): + binarize(sys.argv[1],sys.argv[2]) + else: + usage() + diff --git a/userspace/fonts/binfont.src b/userspace/fonts/binfont.src new file mode 100644 index 0000000..c1d9ccc --- /dev/null +++ b/userspace/fonts/binfont.src @@ -0,0 +1,1235 @@ + +// space (ox2o) + +________ +________ +________ +________ +________ +________ +________ +________ +________ +________ + +// ! + +___XX___ +___XX___ +___XX___ +___XX___ +___XX___ +___XX___ +________ +________ +___XX___ +___XX___ + +// " + +_XX__XX_ +_XX__XX_ +_XX__XX_ +________ +________ +________ +________ +________ +________ +________ + +// # + +________ +__X__X__ +__X__X__ +XXXXXXXX +__X__X__ +__X__X__ +__X__X__ +XXXXXXXX +__X__X__ +__X__X__ + +// $ + +________ +___X____ +_XXXXXX_ +XX_X__XX +_XXX____ +__XXXX__ +___X_XX_ +XX_X__XX +_XXXXXX_ +___X____ + +// % + +______XX +_X___XX_ +X_X_XX__ +_X__XX__ +___XX___ +___XX___ +__XX__X_ +__XX_X_X +_XX___X_ +XX______ + +// & + +__X_____ +_X_X____ +X___X___ +_X_X____ +__XX____ +_X_X____ +X___X_X_ +X____X__ +X___X_X_ +_XXX___X + +// ' + +___XX___ +___XX___ +___XX___ +________ +________ +________ +________ +________ +________ +________ + +// ( + +___X____ +__X_____ +_X______ +_X______ +X_______ +X_______ +_X______ +_X______ +__X_____ +___X____ + +// ) + +___X____ +_____X__ +______X_ +______X_ +_______X +_______X +______X_ +______X_ +_____X__ +___X____ + +// * + +________ +________ +X__X__X_ +_X_X_X__ +__XXX___ +XXXXXXX_ +__XXX___ +_X_X_X__ +X__X__X_ +________ + +// + + +________ +________ +___XX___ +___XX___ +XXXXXXXX +XXXXXXXX +___XX___ +___XX___ +________ +________ + +// , + +________ +________ +________ +________ +________ +________ +________ +___XX___ +___XX___ +__XX____ + +// - + +________ +________ +________ +________ +_XXXXXX_ +_XXXXXX_ +________ +________ +________ +________ + +// . + +________ +________ +________ +________ +________ +________ +________ +________ +___XX___ +___XX___ + +// / +______XX +_____XX_ +____XX__ +____XX__ +___XX___ +___XX___ +__XX____ +__XX____ +_XX_____ +XX______ + +// zero + +_XXXXXX_ +XXXXXXXX +XX___XXX +XX__X_XX +XX__X_XX +XX_X__XX +XX_X__XX +XXX___XX +XXXXXXXX +_XXXXXX_ + +// one + +___XX___ +__XXX___ +__XXX___ +_XXXX___ +XX_XX___ +___XX___ +___XX___ +___XX___ +___XX___ +_XXXXXX_ + +// 2 + +_XXXXXX_ +XXXXXXXX +_____XXX +_____XXX +____XXX_ +___XXX__ +_XXX____ +XXX_____ +XXXXXXXX +XXXXXXXX + +// 3 + +XXXXXXXX +XXXXXXXX +_____XXX +____XX__ +___XX___ +__XXX___ +____XXX_ +XX___XXX +XXXXXXXX +_XXXXXX_ + +// 4 + +___XX___ +__XXX___ +__XXX___ +_XXXX___ +XX_XX___ +XXXXXXXX +XXXXXXXX +___XX___ +___XX___ +___XX___ + +// 5 + +XXXXXXXX +XXXXXXXX +XXX_____ +XXX_____ +XXXXXXX_ +_XXXXXXX +______XX +X_____XX +XXXXXXXX +_XXXXXX_ + +// 6 + +_XXXXXX_ +XXXXXXXX +XX______ +XX______ +XXXXXXX_ +XXXXXXX_ +XX____XX +XX____XX +XXXXXXXX +_XXXXXX_ + +// 7 + +XXXXXXXX +XXXXXXXX +_____XXX +____XXX_ +____XXX_ +___XXX__ +___XXX__ +__XXX___ +__XXX___ +_XXX____ + +// 8 + +_XXXXXX_ +XXXXXXXX +XX____XX +XX____XX +_XXXXXX_ +_XXXXXX_ +XX____XX +XX____XX +XXXXXXXX +_XXXXXX_ + +// 9 + +_XXXXXX_ +XXXXXXXX +XX____XX +XX____XX +_XXXXXXX +_XXXXXXX +______XX +______XX +XXXXXXXX +_XXXXXX_ + + +// : + +________ +________ +________ +________ +___XX___ +___XX___ +________ +___XX___ +___XX___ +________ + + +// ; + +________ +________ +________ +________ +___XX___ +___XX___ +________ +___XX___ +___XX___ +__XX____ + +// < + +________ +________ +______XX +____XX__ +__XX____ +XX______ +__XX____ +____XX__ +______XX +________ + +// = + +________ +________ +________ +________ +XXXXXXXX +________ +XXXXXXXX +________ +________ +________ + + +// > + +________ +________ +XX______ +__XX____ +____XX__ +______XX +____XX__ +__XX____ +XX______ +________ + +// ? + + +_XXXXXX_ +XXXXXXXX +XX____XX +_X___XX_ +____XX__ +___XX___ +___XX___ +________ +___XX___ +___XX___ + +// @ + +_XXXXXX_ +XXXXXXXX +XX____XX +XX_XXXXX +XX_X__XX +XX_X__XX +XX_XXXXX +XX______ +XXXXXXXX +_XXXXXXX + + +// A + +XXXXXXXX +XXXXXXXX +XX____XX +XX____XX +XXXXXXXX +XXXXXXXX +XX____XX +XX____XX +XX____XX +XX____XX + +// B + +XXXXXXX_ +XXXXXXXX +XX____XX +XX____XX +XXXXXXX_ +XXXXXXX_ +XX____XX +XX____XX +XXXXXXXX +XXXXXXX_ + +// C + +XXXXXXXX +XXXXXXXX +XX______ +XX______ +XX______ +XX______ +XX______ +XX______ +XXXXXXXX +XXXXXXXX + +// D + +XXXXXX__ +XXXXXXX_ +XX___XXX +XX____XX +XX____XX +XX____XX +XX____XX +XX___XXX +XXXXXXX_ +XXXXXX__ + +// E + +XXXXXXXX +XXXXXXXX +XX______ +XX______ +XXXXXXX_ +XXXXXXX_ +XX______ +XX______ +XXXXXXXX +XXXXXXXX + +// F + +XXXXXXXX +XXXXXXXX +XX______ +XX______ +XXXXXXX_ +XXXXXXX_ +XX______ +XX______ +XX______ +XX______ + +// G + +XXXXXXXX +XXXXXXXX +XX______ +XX______ +XX__XXXX +XX__XXXX +XX____XX +XX____XX +XXXXXXXX +XXXXXXXX + +// H + +XX____XX +XX____XX +XX____XX +XX____XX +XXXXXXXX +XXXXXXXX +XX____XX +XX____XX +XX____XX +XX____XX + +// I + +_XXXXXX_ +___XX___ +___XX___ +___XX___ +___XX___ +___XX___ +___XX___ +___XX___ +___XX___ +_XXXXXX_ + +// J + +XXXXXXXX +XXXXXXXX +______XX +______XX +______XX +______XX +XX____XX +XXX___XX +_XXXXXXX +__XXXXXX + +// K + +XX____XX +XX__XXX_ +XX__XXX_ +XX_XXX__ +XXXX____ +XXXX____ +XX_XXX__ +XX__XXX_ +XX__XXX_ +XX____XX + +// L + +XX______ +XX______ +XX______ +XX______ +XX______ +XX______ +XX______ +XX______ +XXXXXXXX +XXXXXXXX + +// M + +XX____XX +XXX__XXX +XXX_XXXX +XXXXXXXX +XXXXXXXX +XX_XX_XX +XX_XX_XX +XX____XX +XX____XX +XX____XX + +// N + +XX____XX +XXX___XX +XXX___XX +XXXX__XX +XXXXX_XX +XX_XXXXX +XX__XXXX +XX___XXX +XX___XXX +XX____XX + +// O + +_XXXXXX_ +XXXXXXXX +XX____XX +XX____XX +XX____XX +XX____XX +XX____XX +XX____XX +XXXXXXXX +_XXXXXX_ + +// P + +XXXXXXX_ +XXXXXXXX +XX____XX +XX____XX +XXXXXXXX +XXXXXXX_ +XX______ +XX______ +XX______ +XX______ + +// Q + +_XXXXXX_ +XXXXXXXX +XX____XX +XX____XX +XX____XX +XX_XX_XX +XX_XXXXX +XX__XXXX +XXXXXXXX +_XXXXXXX + +// R + +XXXXXXX_ +XXXXXXXX +XX____XX +XX____XX +XXXXXXXX +XXXXXXX_ +XXXXX___ +XX_XXX__ +XX__XXX_ +XX___XXX + +// S + +_XXXXXX_ +XXXXXXXX +XX____XX +_XX___X_ +__XX____ +___XXX__ +_X__XXX_ +XX___XXX +XXXXXXXX +_XXXXXX_ + +// T + +XXXXXXXX +XXXXXXXX +___XX___ +___XX___ +___XX___ +___XX___ +___XX___ +___XX___ +___XX___ +___XX___ + +// U + +XX____XX +XX____XX +XX____XX +XX____XX +XX____XX +XX____XX +XX____XX +XX____XX +XXXXXXXX +_XXXXXX_ + +// V + +XX____XX +XX____XX +XX____XX +_XX__XX_ +_XX__XX_ +_XX__XX_ +__XXXX__ +__XXXX__ +___XX___ +___XX___ + +// W + +XX____XX +XX____XX +XX_XX_XX +XX_XX_XX +XXXXXXXX +XXXXXXXX +XXX__XXX +XXX__XXX +XX____XX +XX____XX + +// x big + +XX____XX +XX____XX +_XX__XX_ +_XX__XX_ +__XXXX__ +__XXXX__ +_XX__XX_ +_XX__XX_ +XX____XX +XX____XX + +// Y + +XX____XX +XX____XX +_XX__XX_ +_XX__XX_ +__XXXX__ +__XXXX__ +___XX___ +___XX___ +___XX___ +___XX___ + +// Z + +XXXXXXXX +XXXXXXXX +_____XXX +_____XXX +____XXX_ +___XXX__ +_XXX____ +XXX_____ +XXXXXXXX +XXXXXXXX + +// [ + +XXXX____ +XXXX____ +XX______ +XX______ +XX______ +XX______ +XX______ +XX______ +XXXX____ +XXXX____ +// \ + +XX______ +_XX_____ +__XX____ +__XX____ +___XX___ +___XX___ +____XX__ +____XX__ +_____XX_ +______XX + +// ] + +____XXXX +____XXXX +______XX +______XX +______XX +______XX +______XX +______XX +____XXXX +____XXXX +// ^ + +___XX___ +__XXXX__ +_XX__XX_ +XX____XX +________ +________ +________ +________ +________ +________ + +// underscore + +________ +________ +________ +________ +________ +________ +________ +________ +XXXXXXXX +XXXXXXXX + +// ` + +__XX____ +___XX___ +____XX__ +________ +________ +________ +________ +________ +________ +________ + +// a +________ +________ +_XXXXXX_ +XXXXXXXX +______XX +_XXXXXXX +XXXXXXXX +XX____XX +XXXXXXXX +_XXXX_XX + +// b + +XX______ +XX______ +XX______ +XX______ +XXXXXXX_ +XXXXXXX_ +XX____XX +XX____XX +XXXXXXX_ +XXXXXXX_ + +// c + +________ +________ +________ +_XXXXXX_ +XXXXXXXX +XX______ +XX______ +XX______ +XXXXXXXX +_XXXXXX_ + +// d + +______XX +______XX +______XX +______XX +_XXXXXXX +_XXXXXXX +XX____XX +XX____XX +_XXXXXXX +_XXXXXXX + +// e + +________ +________ +_XXXXXX_ +XXXXXXXX +XX_____X +XXXXXXX_ +XX______ +XX______ +XXXXXXXX +_XXXXXX_ + +// f + +_XXXXXX_ +XXXXXXXX +XX______ +XX______ +XXXXXXX_ +XXXXXXX_ +XX______ +XX______ +XX______ +XX______ + +// g + +________ +________ +_XXXXXXX +_XXXXXXX +XX____XX +XX____XX +_XXXXXXX +______XX +XX____XX +_XXXXXXX + +// h + +XX______ +XX______ +XX______ +XX______ +XXXXXXX_ +XXXXXXXX +XX____XX +XX____XX +XX____XX +XX____XX + + +// i + +________ +________ +________ +___XX___ +________ +___XX___ +___XX___ +___XX___ +___XX___ +__XXXX__ + + +// j + +________ +________ +____XX__ +________ +____XX__ +____XX__ +____XX__ +_XX_XX__ +_XX_XX__ +__XXX___ + +// k + + +XX______ +XX______ +XX______ +XX______ +XX____XX +XX__XXX_ +XXXXXX__ +XX_XXX__ +XX__XXX_ +XX___XXX + +// l + + +_XXXX___ +_XXXX___ +___XX___ +___XX___ +___XX___ +___XX___ +___XX___ +___XX___ +___XX___ +_XXXXXX_ + + +// m +________ +________ +________ +XX______ +XXXX_XX_ +XXXXXXXX +XX_XX_XX +XX_XX_XX +XX_XX_XX +XX_XX_XX + +// n +________ +________ +________ +XX______ +XXXXXXX_ +XXXXXXXX +XX____XX +XX____XX +XX____XX +XX____XX + +// o +________ +________ +________ +_XXXXXX_ +XXXXXXXX +XX____XX +XX____XX +XX____XX +XXXXXXXX +_XXXXXX_ + +// p +________ +________ +_XXXXXX_ +XXXXXXXX +XX____XX +XX____XX +XXXXXXX_ +XX______ +XX______ +XX______ + +// q + +________ +________ +_XXXXXX_ +XXXXXXXX +XX____XX +XX____XX +_XXXXXXX +______XX +______XX +______XX + +// r +________ +________ +________ +XX__XX__ +XX_XXXX_ +XXXX__XX +XX______ +XX______ +XX______ +XX______ + +// s + +________ +________ +________ +_XXXXXX_ +XX____XX +_XX_____ +__XXXX__ +_____XX_ +XX____XX +_XXXXXX_ + +// t + +__XX____ +__XX____ +XXXXXX__ +XXXXXX__ +__XX____ +__XX____ +__XX____ +__XX__X_ +__XX_XX_ +___XXX__ + +// u +________ +________ +________ +________ +XX____XX +XX____XX +XX____XX +XX____XX +XX____XX +_XXXXXX_ + +// v +________ +________ +________ +________ +XX____XX +XX____XX +_XX__XX_ +_XX__XX_ +__XXXX__ +___XX___ + +// w +________ +________ +________ +________ +XX_XX_XX +XX_XX_XX +XX_XX_XX +XX_XX_XX +XXXXXXXX +_XX__XX_ + + +// x + +________ +________ +________ +XX____XX +_XX__XX_ +_XX__XX_ +__XXXX__ +_XX__XX_ +_XX__XX_ +XX____XX + + +// y + +________ +________ +________ +XX____XX +_XX__XX_ +_XX__XX_ +__XXXX__ +___XX___ +__XX____ +_XX_____ + + +// z +________ +________ +________ +________ +XXXXXXXX +_____XX_ +____XX__ +__XXX___ +_XX_____ +XXXXXXXX + +// { + +____XX__ +___X____ +__X_____ +__X_____ +XX______ +XX______ +__X_____ +__X_____ +___X____ +____XX__ + +// | + +___XX___ +___XX___ +___XX___ +___XX___ +___XX___ +___XX___ +___XX___ +___XX___ +___XX___ +___XX___ + +// } + +__XX____ +____X___ +_____X__ +_____X__ +______XX +______XX +_____X__ +_____X__ +____X___ +__XX____ + +// ~ + +________ +________ +________ +_XX_____ +X__XX__X +_____XX_ +________ +________ +________ +________ diff --git a/userspace/foolshell.c b/userspace/foolshell.c index 7247871..47d1e92 100644 --- a/userspace/foolshell.c +++ b/userspace/foolshell.c @@ -14,8 +14,6 @@ uint8_t buf_test[1024*300]; void hello() { // ascci art: http://patorjk.com/software/taag/#p=testall&f=Cards&t=Fool%20OS - // - puts( "\033c" @@ -73,6 +71,13 @@ int main(int argc, char **argv) printf("setvbuf returned %i\n",setvbuf(stdin,NULL,_IONBF,0)); + // TODO: remove test (Tryint to write directyly to frameubuff) + uint32_t *vmem=0xfd000000; + for(int i=0;i<2000;i++) + { + *vmem=0xff0000; + vmem++; + } while(1) { prompt(); @@ -88,6 +93,11 @@ int main(int argc, char **argv) buf[bl]=c; buf[bl+1]='\0'; bl++; + for(int i=0;i<20000;i++) + { + *vmem=0xff0000; + vmem++; + } } //fgets(buf,255,stdin); @@ -100,7 +110,6 @@ int main(int argc, char **argv) char **tokenize(char *buf) { - char **token; token=malloc(10*sizeof(char*)); @@ -134,9 +143,7 @@ char **tokenize(char *buf) token[c]=NULL; } - return token; - } int process(char *buf) @@ -194,9 +201,7 @@ int process(char *buf) token[t-1]=0; // printf("path token: '%s'\n",token); - - if(!strcmp(token,"..")) { left--; @@ -275,8 +280,3 @@ int process(char *buf) return 0; } - - - - - |
