mu/ex2.subx

33 lines
727 B
Plaintext
Raw Normal View History

# Test out the video mode by filling in the screen with pixels.
#
# To build a disk image:
2021-03-15 04:41:47 +00:00
# ./translate_subx boot.subx ex2.subx # emits disk.img
# To run:
# qemu-system-i386 disk.img
# Or:
2021-03-16 04:59:08 +00:00
# bochs -f bochsrc # bochsrc loads disk.img
2021-01-14 05:41:45 +00:00
== code
2021-03-16 03:39:23 +00:00
Entry:
2021-01-09 21:43:39 +00:00
# ecx <- start of video memory
2021-03-16 03:32:26 +00:00
8b/-> *Video-memory-addr 1/r32/ecx
2021-01-09 21:43:39 +00:00
# eax <- final pixel of video memory
8d/copy-address *(ecx + 0x0bffff) 0/r32/eax # 0xbffff = 1024*768 - 1
2021-01-09 21:43:39 +00:00
# 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
}
2021-01-09 21:43:39 +00:00
# hang indefinitely
{
eb/jump loop/disp8
}