The Great Int 10h Removal - Amateur OS Dev (x86 asm)
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