made a graphing calculator
idk why
This commit is contained in:
@@ -10,33 +10,20 @@ with the github repo for his project here:
|
||||
|
||||
https://github.com/phil-opp/blog_os
|
||||
|
||||
After reading and implementing the features from the final chapter, (async/await) I could find
|
||||
no further instruction on how to continue with the project from there despite the author of the
|
||||
series saying over a year previously that there would be more posts coming soon.
|
||||
After reading and implementing the features from the final chapter, (async/await) I could find no further instruction on how to continue with the project from there despite the author of the series saying over a year previously that there would be more posts coming soon.
|
||||
|
||||
i guess im gonna just have to improvise :)
|
||||
while I'm waiting for the third edition to release, I guess I'm gonna just have to improvise :)
|
||||
|
||||
the blog got me through the memory management side of the process so i believe that I should
|
||||
have a lot more breathing room to implement the features that i want. As of completing the
|
||||
tutorial, i obviously still dont have access to a standard library, however i can at least
|
||||
use Vectors and Strings now which are important types, as well as the fact that i have access
|
||||
to async and heap allocation
|
||||
the blog got me through the memory management side of the process so i believe that I should have a lot more breathing room to implement the features that i want. As of completing the tutorial, i obviously still dont have access to a standard library, however i can at least use Vectors and Strings now which are important types, as well as the fact that i have access to async and heap allocation.
|
||||
|
||||
### my aims going forwards:
|
||||
|
||||
- whenever i have the chance to work on this project, i want to try and implement a new utility
|
||||
which could be useful or cool for anyone using the operating system.
|
||||
- this could be anything from a cool neofetch style ascii fetcher (if you dont know what im
|
||||
talking about, its just a cool ascii logo of the operating system that appears when you open
|
||||
a terminal sometimes)
|
||||
- improve the text rendering system to create a set of globally accessible functions and/or macros
|
||||
in order to render the text in a more visually appealing way to the user (as the default yellow text
|
||||
does look extremely ugly lmao)
|
||||
- whenever i have the chance to work on this project, i want to try and implement a new utility which could be useful or cool for anyone using the operating system.
|
||||
- this could be anything from a cool neofetch style ascii fetcher (if you dont know what im talking about, its just a cool ascii logo of the operating system that appears when you open a terminal sometimes)
|
||||
- improve the text rendering system to create a set of globally accessible functions and/or macros in order to render the text in a more visually appealing way to the user (as the default yellow text does look extremely ugly lmao)
|
||||
- implement a basic text editor (this will be difficult)
|
||||
- i would need a way to move the cursor around the screen and print text at that location
|
||||
- this would mean rewriting the majority of the code for the vga buffer module to create a more
|
||||
flexible system which allows for applications (modules / commands) to take more direct control of
|
||||
the text rendering whenever they are active
|
||||
- this would mean rewriting the majority of the code for the vga buffer module to create a more flexible system which allows for applications (modules / commands) to take more direct control of the text rendering whenever they are active
|
||||
|
||||
|
||||
# Implementation
|
||||
@@ -47,17 +34,14 @@ does look extremely ugly lmao)
|
||||
|
||||
diverging from the original blog series, i have made some significant changes to keyboard.rs
|
||||
- i have moved the source code that handles the keyboard input from keyboard.rs to shell.rs
|
||||
- this means that instead of the operating system running a task on startup that continually
|
||||
awaits a the next keystroke and works from there, the new layout works very differently
|
||||
- this means that instead of the operating system running a task on startup that continually awaits a the next keystroke and works from there, the new layout works very differently
|
||||
- firstly, i use a lazy_static creating a static called CMD which houses the shell itself
|
||||
- this allows me to reference it from anywhere in the code and initialise it as soon as the program
|
||||
runs
|
||||
- this allows me to reference it from anywhere in the code and initialise it as soon as the program runs
|
||||
- this may be changed later as i could just make an init function in shell.rs if i needed to
|
||||
- the shell contains a get_input function that awaits a keystroke from the user before continuing
|
||||
- this is looped inside the main shell function and added to a buffer
|
||||
- when the \n character is inputted, the buffer is copied to the command history vector and then cleared
|
||||
- additionally the buffer is run through a match statement that will start any app that matches the command
|
||||
or alias.
|
||||
- additionally the buffer is run through a match statement that will start any app that matches the command or alias.
|
||||
|
||||
## Phase 3: CrystalAPI
|
||||
|
||||
@@ -65,8 +49,7 @@ or alias.
|
||||
|
||||
the crystal api will essentially be a standard library for any programs that are run by the shell
|
||||
- it provides basic functions such as waiting for a keystroke or string to be entered by the user
|
||||
- it will eventually support coloured text output once ive had a chance to modify the code for the vga
|
||||
buffer to support coloured text output through a public function.
|
||||
- it will eventually support coloured text output once ive had a chance to modify the code for the vga buffer to support coloured text output through a public function.
|
||||
|
||||
### example:
|
||||
here is a template that could be used to program using the crystal API
|
||||
@@ -214,3 +197,5 @@ over the last couple of days I've made some signifcant changes to this project.
|
||||
I have started the development of a TUI (terminal user interface) library allowing for widgets to be displayed
|
||||
on screen using ascii.
|
||||
its pretty barebones at the moment but I'm hoping to add more features as time goes on!
|
||||
|
||||
## UPDATE: 02/10/23
|
||||
Reference in New Issue
Block a user