12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667 |
- /*
- BIOS has a scroll function!
- Very convenient, otherwise that would be hard to implement.
- How it works:
- Before scroll:
- a
- b
- c
- d
- We then choose to act on the rectangle with corners
- (1, 1) and (2, 2)} given by cx and dx:
- a
- XX
- XX
- d
- and scroll that rectangle down by one line (al).
- The final outcome is:
- a
- c
- NN
- d
- where `N` are new squares generated by the scroll,
- which gets filled with the background color in bh.
- */
- #include "common.h"
- BEGIN
- CLEAR
- PRINT_STRING $stair
- /* Function ID. */
- mov $0x06, %ah
- /* nr. of lines to scroll */
- mov $0x01, %al
- /*
- BIOS color attributes.
- Background is the clear color.
- Foreground is set as the new foreground color.
- */
- mov $0xA4, %bh
- /*
- CH,CL: row,column upper left corner (00:00)
- TODO what does that mean?
- */
- mov $0x0101, %cx
- /*
- DH,DL: row,column lower right corner (24:79).
- TODO what does it mean?
- */
- mov $0x0202, %dx
- int $0x10
- hlt
- stair:
- .asciz "a\nb\nc\nd"
|