The Great Int 10h Removal - Amateur OS Dev (x86 asm)

Channel:
Subscribers:
5,840
Published on ● Video Link: https://www.youtube.com/watch?v=AJW5fcIILa8



Duration: 2:31:33
1,003 views
20


Clear_screen still uses int 10h, but other than that and the boot sector, a print_string_text_mode function is created and printing characters/strings is replaced with the new non int 10 functions.

I was pretty negative when recording this, it's not that bad in retrospect, but I didn't need to do that many changes. Trying to work more on self care and less negative thinking.

Next video will have:
Using 80h for the disk # for "hard disk" 1, so technically not using a floppy anymore
Adding scrolling support (scroll down only, for now) to print_char and print_string
Changing printing (again) to use the cursor x/y addresses instead of values. That should allow some simplifying from what happened in this video.

CRT Microcontroller and other printing info: http://www.brokenthorn.com/Resources/OSDev10.html

Video outline:
0:00 - Change qemu command to remove warning message
1:27 - Fix text file loading with newlines at start of lines
8:41 - Create print_string_text_mode file
12:24 - Replace int 10h with print functions p.1
36:59 - Add cursor output parms and CR/LF to print_string
42:00 - Replace int 10h with print functions p.2
46:12 - Add cursor output parms and CR/LF to print_char
48:54 - Replace int 10h with print functions p.3
58:54 - Add cursor input/output parms to print_hex
1:02:25 - Replace int 10h with print functions p.4
1:12:54 - Add cursor input/output parms & new print functions to print_registers
1:28:37 - Fix what broke and keep on replacing int 10h p.5
1:49:48 - Debug printing issues
2:06:29 - Fix sectors beyond 18; Change load/save file to get track/sector
2:16:33 - Debug more printing issues
2:20:23 - Replace int 10h in move_cursor
2:29:12 - Next things to do & Outro

----------------------------------------------------------------------------------------------------------------------------------------
Playlist for this series:
https://www.youtube.com/playlist?list=PLT7NbkyNWaqajsw8Xh7SP9KJwjfpP8TNX

Git repos:
https://git.sr.ht/~queso_fuego/quesos
https://github.com/queso-fuego/amateuros

Software used:
VMware Workstation Player - https://www.vmware.com/products/workstation-player/workstation-player-evaluation.html
openBSD - https://www.openbsd.org/
qemu - https://www.qemu.org/
vim - https://www.vim.org/ (neovim is probably better :p)
fasm - https://flatassembler.net/
fasm docs - https://flatassembler.net/docs.php?article=manual

Contact:
email - fuegoqueso@gmail.com
twitter - @Queso_Fuego

Thoughts/Notes/Suggestions/Other - Drop a message in the video comments, by twitter, or by email

Credits:
Music from https://incompetech.com:
"Your Call" Kevin MacLeod (incompetech.com)
Licensed under Creative Commons: By Attribution 4.0 License
http://creativecommons.org/licenses/by/4.0/

The blue title tags:
#osdev #programming #x86







Tags:
programming
low level
os dev
assembly
x86
asm
int 10
printing strings
fasm
move cursor
queso fuego
16 bit
real mode
qemu