# Test out the video mode by filling in the screen with pixels. # # To build a disk image: # ./translate_subx_baremetal baremetal/ex2.subx # emits disk.img # To run: # qemu-system-i386 disk.img # Or: # bochs -f baremetal/boot.bochsrc # boot.bochsrc loads disk.img # # Expected output: # html/baremetal.png == code main: # ecx <- start of video memory 8b/-> *0x8128 1/r32/ecx # eax <- final pixel of video memory 8d/copy-address *(ecx + 0x0bffff) 0/r32/eax # 0xbffff = 1024*768 - 1 # for each pixel in video memory { 39/compare %eax 1/r32/ecx 7c/jump-if-< break/disp8 # write its column number to it 88/byte<- *eax 0/r32/AL 48/decrement-eax eb/jump loop/disp8 } # hang indefinitely { eb/jump loop/disp8 }