Skip to content
/ pczero Public

experiments with bootable image of x86 and protected mode 32 bit code for the i386 platform written in assembler and c++ contains: * minimal assembler kernel supporting preemptive multitasking (1 KB) * sample toy application of a 2d game engine

Notifications You must be signed in to change notification settings

calint/pczero

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

pczero

experiments with bootable image of x86 and protected mode 32 bit code for the i386 platform

written in assembler and C++

intention:

  • travel back to the 80's when the 32 bit intel 386 with math co-processor appeared, equipped with c++ from the future
  • write a micro kernel (1 KB) in assembler that does preemptive multitasking
  • handle multiple tasks and keyboard with a simple kernel written in c++
  • write a small 2d framework for a toy application

contains:

  • minimal assembler kernel supporting preemptive multitasking (osca.S)
  • minimal c++ kernel (lib.h, kernel.h)
    • task switch (ctrl+tab)
    • enable/disable task (ctrl+F1, F2 etc)
    • keyboard focus on tasks that handle input
  • sample toy application of a 2d game engine (libge.h, game.h)
    • collision detection between convex shapes
    • simple targeting system of objects in motion (can easily be extended to 3d and non-linear trajectories)
  • sample tasks (main.cc)

screenshot 2024-03-13--12-07-40

About

experiments with bootable image of x86 and protected mode 32 bit code for the i386 platform written in assembler and c++ contains: * minimal assembler kernel supporting preemptive multitasking (1 KB) * sample toy application of a 2d game engine

Topics

Resources

Stars

Watchers

Forks

Packages

No packages published