mirror of
https://github.com/yourtion/30dayMakeOS.git
synced 2026-02-10 13:25:02 +08:00
Compare commits
4 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
358f1a4d33 | ||
|
|
e041908391 | ||
|
|
70af4152d2 | ||
|
|
5c10d16cd1 |
@@ -33,9 +33,9 @@
|
|||||||
|
|
||||||
; 信息显示部分
|
; 信息显示部分
|
||||||
|
|
||||||
DB 0x0a, 0x0a ; ?个?行
|
DB 0x0a, 0x0a ; 换行两次
|
||||||
DB "hello, world"
|
DB "hello, world"
|
||||||
DB 0x0a ; ?行
|
DB 0x0a ; 换行
|
||||||
DB 0
|
DB 0
|
||||||
|
|
||||||
RESB 0x1fe-$ ; 填写0x00直到0x001fe
|
RESB 0x1fe-$ ; 填写0x00直到0x001fe
|
||||||
|
|||||||
1
02_day/!cons_9x.bat
Normal file
1
02_day/!cons_9x.bat
Normal file
@@ -0,0 +1 @@
|
|||||||
|
command
|
||||||
1
02_day/!cons_nt.bat
Normal file
1
02_day/!cons_nt.bat
Normal file
@@ -0,0 +1 @@
|
|||||||
|
cmd.exe
|
||||||
39
02_day/Makefile
Normal file
39
02_day/Makefile
Normal file
@@ -0,0 +1,39 @@
|
|||||||
|
|
||||||
|
# 默认动作
|
||||||
|
|
||||||
|
default :
|
||||||
|
../z_tools/make.exe img
|
||||||
|
|
||||||
|
# 镜像文件生成
|
||||||
|
|
||||||
|
ipl.bin : ipl.nas Makefile
|
||||||
|
../z_tools/nask.exe ipl.nas ipl.bin ipl.lst
|
||||||
|
|
||||||
|
helloos.img : ipl.bin Makefile
|
||||||
|
../z_tools/edimg.exe imgin:../z_tools/fdimg0at.tek \
|
||||||
|
wbinimg src:ipl.bin len:512 from:0 to:0 imgout:helloos.img
|
||||||
|
|
||||||
|
# 其他指令
|
||||||
|
|
||||||
|
asm :
|
||||||
|
../z_tools/make.exe -r ipl.bin
|
||||||
|
|
||||||
|
img :
|
||||||
|
../z_tools/make.exe -r helloos.img
|
||||||
|
|
||||||
|
run :
|
||||||
|
../z_tools/make.exe img
|
||||||
|
copy helloos.img ..\z_tools\qemu\fdimage0.bin
|
||||||
|
../z_tools/make.exe -C ../z_tools/qemu
|
||||||
|
|
||||||
|
install :
|
||||||
|
../z_tools/make.exe img
|
||||||
|
../z_tools/imgtol.com w a: helloos.img
|
||||||
|
|
||||||
|
clean :
|
||||||
|
-del ipl.bin
|
||||||
|
-del ipl.lst
|
||||||
|
|
||||||
|
src_only :
|
||||||
|
../z_tools/make.exe clean
|
||||||
|
-del helloos.img
|
||||||
60
02_day/ipl.nas
Normal file
60
02_day/ipl.nas
Normal file
@@ -0,0 +1,60 @@
|
|||||||
|
; hello-os
|
||||||
|
; TAB=4
|
||||||
|
|
||||||
|
ORG 0x7c00 ; 指明程序装载地址
|
||||||
|
|
||||||
|
; 标准FAT12格式软盘专用的代码 Stand FAT12 format floppy code
|
||||||
|
|
||||||
|
JMP entry
|
||||||
|
DB 0xeb, 0x4e, 0x90
|
||||||
|
DB "HELLOIPL" ; 启动扇区名称(8字节)
|
||||||
|
DW 512 ; 每个扇区(sector)大小(必须512字节)
|
||||||
|
DB 1 ; 簇(cluster)大小(必须为1个扇区)
|
||||||
|
DW 1 ; FAT起始位置(一般为第一个扇区)
|
||||||
|
DB 2 ; FAT个数(必须为2)
|
||||||
|
DW 224 ; 根目录大小(一般为224项)
|
||||||
|
DW 2880 ; 该磁盘大小(必须为2880扇区1440*1024/512)
|
||||||
|
DB 0xf0 ; 磁盘类型(必须为0xf0)
|
||||||
|
DW 9 ; FAT的长度(必??9扇区)
|
||||||
|
DW 18 ; 一个磁道(track)有几个扇区(必须为18)
|
||||||
|
DW 2 ; 磁头数(必??2)
|
||||||
|
DD 0 ; 不使用分区,必须是0
|
||||||
|
DD 2880 ; 重写一次磁盘大小
|
||||||
|
DB 0,0,0x29 ; 意义不明(固定)
|
||||||
|
DD 0xffffffff ; (可能是)卷标号码
|
||||||
|
DB "HELLO-OS " ; 磁盘的名称(必须为11字?,不足填空格)
|
||||||
|
DB "FAT12 " ; 磁盘格式名称(必??8字?,不足填空格)
|
||||||
|
RESB 18 ; 先空出18字节
|
||||||
|
|
||||||
|
; 程序主体
|
||||||
|
|
||||||
|
entry:
|
||||||
|
MOV AX,0 ; 初始化寄存器
|
||||||
|
MOV SS,AX
|
||||||
|
MOV SP,0x7c00
|
||||||
|
MOV DS,AX
|
||||||
|
MOV ES,AX
|
||||||
|
|
||||||
|
MOV SI,msg
|
||||||
|
putloop:
|
||||||
|
MOV AL,[SI]
|
||||||
|
ADD SI,1 ; 给SI加1
|
||||||
|
CMP AL,0
|
||||||
|
JE fin
|
||||||
|
MOV AH,0x0e ; 显示一个文字
|
||||||
|
MOV BX,15 ; 指定字符颜色
|
||||||
|
INT 0x10 ; 调用显卡BIOS
|
||||||
|
JMP putloop
|
||||||
|
fin:
|
||||||
|
HLT ; 让CPU停止,等待指令
|
||||||
|
JMP fin ; 无限循环
|
||||||
|
|
||||||
|
msg:
|
||||||
|
DB 0x0a, 0x0a ; 换行两次
|
||||||
|
DB "hello, world"
|
||||||
|
DB 0x0a ; 换行
|
||||||
|
DB 0
|
||||||
|
|
||||||
|
RESB 0x7dfe-$ ; 填写0x00直到0x001fe
|
||||||
|
|
||||||
|
DB 0x55, 0xaa
|
||||||
1
02_day/make.bat
Normal file
1
02_day/make.bat
Normal file
@@ -0,0 +1 @@
|
|||||||
|
..\z_tools\make.exe %1 %2 %3 %4 %5 %6 %7 %8 %9
|
||||||
Reference in New Issue
Block a user