文章分类 -  《30天自制操作系统》学习与实践

从零到一学习制作操作系统
摘要:鼠标控制与32位模式切换 一、鼠标控制 1. 鼠标数据解读 unsigned char mouse_dbuf[3], mouse_phase; for (;;) { io_cli(); if (fifo8_status(&keyfifo) + fifo8_status(&mousefifo) == 阅读全文
posted @ 2023-04-07 15:02 bingekong 阅读(33) 评论(0) 推荐(0) 编辑
摘要:FIFO与鼠标控制 一、FIFO 1. 获取按键编码 实现当按下键盘时,会在屏幕显示按下键的编码 #define PORT_KEYDAT 0x0060 void inthandler21(int *esp) { struct BOOTINFO *binfo = (struct BOOTINFO *) 阅读全文
posted @ 2023-04-03 00:45 bingekong 阅读(36) 评论(0) 推荐(0) 编辑
摘要:第六天 - 分割编译与中断处理 一、文件整理 1. 源文件分割 按照内容对源文件进行分割为多个小文件,修改和编译都会提高make的速度 graphic.c - 描画等图形处理 /* u关于描画的处理 */ void io_hlt(void); void io_cli(void); void io_o 阅读全文
posted @ 2023-04-02 21:24 bingekong 阅读(28) 评论(0) 推荐(0) 编辑
摘要:结构体, 文字显示, GDT/IDT初始化 一、结构体 1. 接受启动信息 避免写死相关的地址常量,改用指针获取启动所需的信息 binfo -- bootinfo scrn --screen void HariMain(void) { char *vram; int xsize, ysize; sh 阅读全文
posted @ 2023-04-02 17:26 bingekong 阅读(137) 评论(0) 推荐(0) 编辑
摘要:C 语言与画面显示 一、C语言内容 1. C 语言实现内存写入 实现一个汇编语言函数,将要显示的内容写入指定的内存地址中 VRAM ; naskfunc.nas文件 ; naskfunc ; TAB=4 [FORMAT "WCOFF"] ; 制作目标文件的模式 [INSTRSET "i486p"] 阅读全文
posted @ 2023-04-01 23:44 bingekong 阅读(53) 评论(0) 推荐(0) 编辑
摘要:32位模式与C语言 一、32位模式 1. 制作IPL(Initial Program Loader) 启动区 - 磁盘最初的512个字节是启动区 IPL - 启动程序装载器,装在启动区内,用于加载真正的操作系统 汇编代码解析: ; ipl.nas ; hello-os ; TAB = 4 ORG 0 阅读全文
posted @ 2023-03-31 00:39 bingekong 阅读(35) 评论(0) 推荐(0) 编辑
摘要:汇编语言学习与Makefile入门 一、汇编学习 汇编核心程序 ; hello-os ; TAB=4 ORG 0x7c00 ; 指明程序装载地址 JMP entry ; 标准FAT12格式软盘专用的代码 Stand FAT12 format floppy code DB 0x90 DB "HELLO 阅读全文
posted @ 2023-03-30 01:01 bingekong 阅读(95) 评论(0) 推荐(0) 编辑
摘要:hello world 一、基础知识 UEFI与BIOS的概念 1. BIOS Basic Input Output System, 基本输入输出系统 简介 是一组固化到计算机内主板上一个daoROM芯片上的程序,它保存着计算机最重要的基本输入输出的程序、系统设置信息、开机后自检程序和系统自启动程序 阅读全文
posted @ 2023-03-30 00:39 bingekong 阅读(33) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示