Giter VIP home page Giter VIP logo

wyoos's People

Contributors

algorithman-de avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

wyoos's Issues

“lgdt” ASM code results in an error when compiler is optimised on level 2

To load the Global Descriptor Table, the instruction “lgdt” when called from C code, gets discarded, and results in an error “Invalid asm operand: invalid expression”. This is only valid if the compiler is run in a level 2 optimised mode. If it’s not optimized, the compiler runs without any problem.

Package grub-legacy is not available

Package grub-legacy is not available, but is referred to by another package.
This may mean that the package is missing, has been obsoleted, or
is only available from another source
However the following packages replace it:
  grub-coreboot:i386 grub-coreboot grub2-common:i386 grub-pc:i386 grub-ieee1275:i386 grub-efi-ia32:i386
  grub-efi-amd64:i386 grub2-common grub-pc grub-ieee1275 grub-efi-ia32 grub-efi-amd64

E: Package 'grub-legacy' has no installation candidate

Error received on Linux Mint 19.1.

Possible typo in ata driver

You're writing to the LbaLowPort, then the LbaMidPort, and then the LbaLowPort again. It is possible that you meant to do LbaLowPort then LbaMidPort then LbaHighPort.

Probable bug in gdt.cpp

Line 35 in gdt.cpp reads: "if (limit <= 65536)". This is a reference to a memory adress, and a memory adress always start at 0. I recognize the number 65536 as 2^16 so the correct line should probably be "if (limit < 65536)", allowing for memory address from 0 to 65535. Please examine the code and check if I have noticed a bona fide bug.

Tutorial 5: Error when executing 'asm("sti");'

If i execute the line you see above. VirtualBox is crashing and spamming my terminal with many lines but i dont know 1. Why it is crashing and 2. How can I fix this crash

Pls help me i am lost

Error in keyboard driver

Multimedia keys send multiple interrupts when pressed.
First the code 0xe0 and than a keycode.
This would make the code incorect for e.g.:

(multimedia) mute pressed -> 0xE0, 0x20 -> This would call OnKeyDown('d').
(keypad) '/' -> 0xe0, 0x35 -> OnKeyDown('-').

I just wanted to put this out there cuzz it took me quite some time to figure this out.

error: cast from ‘GlobalDescriptorTable*’ to ‘uint32_t’

./src/gdt.cpp: In constructor ‘GlobalDescriptorTable::GlobalDescriptorTable()’:
./src/gdt.cpp:10:22: error: cast from ‘GlobalDescriptorTable*’ to ‘uint32_t’ {aka ‘unsigned int’} loses precision [-fpermissive]
10 | i[1] = (uint32_t)this;
|

AMD am79c973

When i start my virtual machine (im using vmware right now because virtualbox loves me (NOT)), I get the error: "AMD am79c973" after "SEND: FF FF FF FF 0A 00 02 02"

Excuse me

Can't open YouTube, teach me how to adapt it

Write your own Operating System 5: Interrupts

I am trying to implement the YouTube series "Writing your own OS".

You can find my code at "https://github.com/tiagomendes7/Build_Your_Own_OS/tree/main".

Unfortunately i came across this error and i don't know how to solve it.
I believe it has to do with the file "interruptstubs.s" and the code in the line 19 and line 20:

global _ZN16InterruptManager26HandleInterruptRequest\num\()Ev
_ZN16InterruptManager26HandleInterruptRequest\num\()Ev:

Below you can find the output of the command "make mykernel.iso":

as --32 -o loader.o loader.s

g++ -m32 -Iinclude -fno-use-cxa-atexit -nostdlib -fno-builtin -fno-rtti -fno-exceptions -fno-leading-underscore -Wno-write-strings -o port.o -c port.cpp

g++ -m32 -Iinclude -fno-use-cxa-atexit -nostdlib -fno-builtin -fno-rtti -fno-exceptions -fno-leading-underscore -Wno-write-strings -o gdt.o -c gdt.cpp

g++ -m32 -Iinclude -fno-use-cxa-atexit -nostdlib -fno-builtin -fno-rtti -fno-exceptions -fno-leading-underscore -Wno-write-strings -o interrupts.o -c interrupts.cpp

as --32 -o interruptstubs.o interruptstubs.s

g++ -m32 -Iinclude -fno-use-cxa-atexit -nostdlib -fno-builtin -fno-rtti -fno-exceptions -fno-leading-underscore -Wno-write-strings -o kernel.o -c kernel.cpp

ld -melf_i386 -T linkder.ld -o mykernel.bin loader.o port.o gdt.o interrupts.o interruptstubs.o kernel.o

ld: interruptstubs.o: in function `InterruptManager::HandleInterruptRequest0x00()':
(.text+0x0): multiple definition of `InterruptManager::HandleInterruptRequest0x00()'; interrupts.o:interrupts.cpp:(.text+0x34a): first defined here

ld: interruptstubs.o: in function `InterruptManager::HandleInterruptRequest0x01()':
(.text+0xb): multiple definition of `InterruptManager::HandleInterruptRequest0x01()'; interrupts.o:interrupts.cpp:(.text+0x35a): first defined here

make: *** [Makefile:15: mykernel.bin] Error 1

Linker Issue

ld: interrupts.o: in function InterruptManager::InterruptManager(GlobalDescriptorTable*)': interrupts.cpp:(.text+0x111): undefined reference to InterruptManager::HandleInterruptRequest0x00()'
ld: interrupts.cpp:(.text+0x12e): undefined reference to `InterruptManager::HandleInterruptRequest0x01()'
make: *** [Makefile:19: kernel.bin] Error 1

I dunno what's wrong

Invalid 'asm': invalid expression as operand

I am getting the following error when trying to compile the code at the end of video 3.

g++ -m32 -fno-use-cxa-atexit -nostdlib -fno-builtin -fno-rtti -fno-exceptions -fno-leading-underscore -o gdt.o -c gdt.cpp
gdt.cpp: In constructor ‘GlobalDescriptorTable::GlobalDescriptorTable()’:
gdt.cpp:13:5: error: invalid 'asm': invalid expression as operand
   13 |     asm volatile("lgdt (%0)": : "p" (((uint8_t *) i)+2));
      |     ^~~
make: *** [Makefile:8: gdt.o] Error 1

I have tried a number of things. Tried different versions of GCC (5 and 6 as well as 10.3.0). I have also tried both 32bit and 64bit versions of gcc.

OS Part 7 : Mouse observations

I like your idea of the video series, keep up the good work! A couple of observations regarding the mouse. The mouse X (buffer[1]) and Y (buffer[2]) values are actually part of a 9-bit 2s complement value. Bit 8 (top bit) for X is actually in buffer[0] at bit 4, and Bit 8 (top bit) for Y is in buffer[0] at bit 5. These bits should be taken into account or you could be interpreting some values from the mouse incorrectly. Something like this should work:

/* Bit 4 of buffer[0] is X's sign bit
   Bit 5 of buffer[0] is Y's sign bit */
x += buffer[1] - (0x100 & (buffer[0] << (8-4)));
y -= buffer[2] - (0x100 & (buffer[0] << (8-5)));`

Of course with code as I suggest buffer would be an array of 3 uint8_t, and x and y would have to be a signed integer big enough to hold the values you need (int16_t or int32_t).

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.