Guest User

Untitled

a guest
Sep 1st, 2025
31
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.92 KB | None | 0 0
  1. this is the mbr
  2. ORG 0X7C00
  3.  
  4. MOV SI, BOOTSTRING
  5.  
  6.  
  7. CALL TELETYPE
  8. TELETYPE:
  9. MOV AH, 0X0E
  10. MOV AL, [SI]
  11. CMP AL, 0
  12. JE .EXIT
  13. INT 0X10
  14. INC SI
  15. JMP TELETYPE
  16. .EXIT:
  17. RET
  18.  
  19. BOOT:
  20.  
  21. MOV AH, 0X02
  22. MOV AL, 1
  23. MOV CH, 0
  24. MOV CL, 2
  25. MOV DH, 0
  26. MOV DL, 0X80
  27. MOV BX, 0X7E00
  28. INT 0X13
  29.  
  30. JC DISKERROR
  31.  
  32.  
  33. JMP 0X0000:0X7E00
  34.  
  35. DISKERROR:
  36.  
  37. MOV AH, 0X0E
  38.  
  39. MOV AL, "?"
  40.  
  41. INT 0X10
  42.  
  43.  
  44.  
  45.  
  46. BOOTSTRING:
  47. DB "BOOTING!", 0
  48. TIMES 510 - ($ - $$) DB 0;
  49. DB 0X55, 0XAA
  50.  
  51. the kernel
  52. ORG 0X7E00
  53.  
  54. MOV SI, KRNLHI
  55. CALL NEWLN
  56. CALL WRITE
  57. CALL NEWLN
  58. MOV SI, KRNLSTORY
  59. CALL WRITE
  60. CALL NEWLN
  61. ; msdos.sys is 0x7e00, io.sys is 0x8600, and command.com is 0x8800
  62. CALL 0X8800
  63.  
  64.  
  65.  
  66.  
  67. WRITE:
  68. MOV AH, 0X09
  69. CALL 0X8600
  70. RET
  71. NEWLN:
  72. MOV AH, 0X07
  73. CALL 0X8600
  74.  
  75. RET
  76. JMP 0X8000
  77. KRNLHI DB "PANTERUTA DOS Kernel Loaded!", 0
  78. KRNLSTORY DB "Hello, this is a DOS kernel made by me, named after my cat Panteruta. I am just 13 so don't expect this DOS to do anything super complex, but i would love it being able to run a basic os like Windows 1.0 in the future!", 0
  79. times 2048 - ($ - $$) db 00
  80. command.com
  81. ORG 0X8800
  82. MOV CH, "C"
  83. MOV BL, 0
  84. COMMAND:
  85.  
  86.  
  87. CMP CL, 1
  88. JE COMMAND_INTERPRETER
  89. JMP COMMAND_OUTPUT
  90. RET
  91.  
  92. COMMAND_OUTPUT:
  93. MOV BH, 0
  94.  
  95. MOV SI, CMD
  96. CALL NEWLN
  97. MOV AL, CH
  98. INT 0X10
  99. CALL WRITE
  100. CALL INPUT
  101. CALL COMMAND_INTERPRETER
  102. JMP COMMAND_OUTPUT
  103.  
  104.  
  105. RET
  106.  
  107. COMMAND_INTERPRETER:
  108.  
  109. MOV SI, VERCMD
  110.  
  111. MOV AX, 0
  112. CALL .READBUFFER
  113.  
  114. CMP AX, 1
  115. JE .OUTPVER
  116.  
  117. MOV AL, VER
  118. JE .OUTPVER
  119. CALL NEWLN
  120. CMP BH, 1
  121. JE .EXITCMD
  122.  
  123.  
  124.  
  125. RET
  126.  
  127. .READBUFFER:
  128.  
  129. MOV AL, [SI]
  130.  
  131. .LOOP
  132.  
  133. CMP AL, 0
  134.  
  135. JE .OUTPTRUE
  136.  
  137.  
  138.  
  139. CMP AL, DL
  140. JNE .OUTPFALSE
  141. INC BH
  142. INC AL
  143. JMP .LOOP
  144.  
  145. .OUTPTRUE
  146.  
  147. MOV AX, 1
  148. RET
  149.  
  150. .OUTPFALSE
  151.  
  152. RET
  153.  
  154.  
  155.  
  156. .OUTPVER:
  157. CALL NEWLN
  158. MOV SI, VER
  159. CALL WRITE
  160. JMP COMMAND_OUTPUT
  161.  
  162. .CMD1:
  163.  
  164. CALL NEWLN
  165. MOV AH, 0X0E
  166. MOV AL, "1"
  167. INT 0X10
  168. JMP COMMAND_OUTPUT
  169. .EXITCMD:
  170.  
  171. MOV SI, BCMD
  172. CALL WRITE
  173. CALL NEWLN
  174. JMP COMMAND_OUTPUT
  175. RET
  176.  
  177.  
  178.  
  179.  
  180.  
  181.  
  182.  
  183.  
  184.  
  185.  
  186.  
  187.  
  188.  
  189.  
  190.  
  191.  
  192.  
  193. WRITE:
  194.  
  195. MOV AH, 0X09
  196. CALL 0X8600
  197.  
  198. RET
  199. NEWLN:
  200.  
  201. MOV AH, 0X07
  202. CALL 0X8600
  203.  
  204. RET
  205.  
  206. INPUT:
  207. MOV AH, 0X08
  208. CALL 0X8600
  209.  
  210. RET
  211.  
  212.  
  213.  
  214.  
  215.  
  216.  
  217.  
  218.  
  219.  
  220.  
  221.  
  222. VERCMD:
  223. DB "V", 0
  224.  
  225.  
  226.  
  227.  
  228.  
  229.  
  230.  
  231.  
  232.  
  233.  
  234.  
  235.  
  236.  
  237.  
  238.  
  239.  
  240.  
  241.  
  242.  
  243.  
  244. CMD:
  245. DB ":\>", 0
  246.  
  247.  
  248.  
  249. BCMD:
  250. DB "Bad Command or File Name", 0
  251.  
  252. VER:
  253. DB "Panteruta DOS Version 1.0", 0
  254. times 4096 - ($ - $$) db 00
  255.  
  256. I/O
  257. ORG 0X8600
  258.  
  259. OUTPUT:
  260. MOV DX, 0
  261. CMP AH, 0X09
  262.  
  263.  
  264. JE .TELETYPE
  265.  
  266.  
  267. CMP AH, 0X07
  268. JE .NEWLINE
  269.  
  270. CMP AH, 0X08
  271. JE .INPUT
  272.  
  273.  
  274. .TELETYPE:
  275.  
  276. MOV AH, 0X0E
  277.  
  278. MOV AL, [SI]
  279.  
  280.  
  281. CMP AL, 0
  282. JE .END
  283.  
  284. INT 0X10
  285. INC SI
  286. JMP .TELETYPE
  287.  
  288. .END:
  289.  
  290. RET
  291.  
  292.  
  293. .NEWLINE:
  294.  
  295. MOV AH, 0X0E
  296. MOV AL, 0X0A
  297. INT 0X10
  298. MOV AL, 0X0D
  299. INT 0X10
  300.  
  301. RET
  302.  
  303. .INPUT:
  304.  
  305. MOV DI, BUFFER
  306.  
  307. MOV AH, 0X00
  308. INT 0X16
  309. CMP AL, 13
  310. JE .JMPFROMINPUT
  311. MOV [DI], AL
  312. INC DI
  313.  
  314. MOV AH, 0X0E
  315. INT 0X10
  316. MOV BH, 1
  317.  
  318.  
  319. JMP .INPUT
  320.  
  321. .JMPFROMINPUT:
  322. MOV DX, [BUFFER]
  323. RET
  324.  
  325. BUFFER:
  326.  
  327. TIMES 128 DB 0
  328.  
  329. TIMES 512 - ($ - $$ ) DB 00
  330.  
  331.  
Advertisement
Add Comment
Please, Sign In to add comment