33 lines
727 B
Plaintext
33 lines
727 B
Plaintext
# Test out the video mode by filling in the screen with pixels.
|
|
#
|
|
# To build a disk image:
|
|
# ./translate_subx boot.subx ex2.subx # emits disk.img
|
|
# To run:
|
|
# qemu-system-i386 disk.img
|
|
# Or:
|
|
# bochs -f bochsrc # bochsrc loads disk.img
|
|
|
|
== code
|
|
|
|
Entry:
|
|
# ecx <- start of video memory
|
|
8b/-> *Video-memory-addr 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
|
|
}
|