Magellan Linux

Contents of /trunk/mkinitrd-magellan/isolinux/rawcon.inc

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1133 - (show annotations) (download)
Thu Aug 19 09:50:43 2010 UTC (13 years, 8 months ago) by niro
File size: 1399 byte(s)
-updated to isolinux-3.86
1 ;
2 ; writechr: Write a single character in AL to the console without
3 ; mangling any registers. This does raw console writes,
4 ; since some PXE BIOSes seem to interfere regular console I/O.
5 ;
6 %if IS_ISOLINUX
7 writechr_full:
8 %else
9 writechr:
10 %endif
11 pushfd
12 push ds
13 push cs
14 pop ds
15 test byte [UsingVGA], 08h
16 jz .videook
17 call vgaclearmode
18 .videook:
19 call write_serial ; write to serial port if needed
20 test byte [DisplayCon],01h ; Write to screen?
21 jz .nothing
22
23 pushad
24 mov bh,[BIOS_page]
25 push ax
26 mov ah,03h ; Read cursor position
27 int 10h
28 pop ax
29 cmp al,8
30 je .bs
31 cmp al,13
32 je .cr
33 cmp al,10
34 je .lf
35 push dx
36 mov bh,[BIOS_page]
37 mov bl,07h ; White on black
38 mov cx,1 ; One only
39 mov ah,09h ; Write char and attribute
40 int 10h
41 pop dx
42 inc dl
43 cmp dl,[VidCols]
44 jna .curxyok
45 xor dl,dl
46 .lf: inc dh
47 cmp dh,[VidRows]
48 ja .scroll
49 .curxyok: mov bh,[BIOS_page]
50 mov ah,02h ; Set cursor position
51 int 10h
52 .ret: popad
53 .nothing:
54 pop ds
55 popfd
56 ret
57 .scroll: dec dh
58 mov bh,[BIOS_page]
59 mov ah,02h
60 int 10h
61 mov ax,0601h ; Scroll up one line
62 mov bh,[ScrollAttribute]
63 xor cx,cx
64 mov dx,[ScreenSize] ; The whole screen
65 int 10h
66 jmp short .ret
67 .cr: xor dl,dl
68 jmp short .curxyok
69 .bs: sub dl,1
70 jnc .curxyok
71 mov dl,[VidCols]
72 sub dh,1
73 jnc .curxyok
74 xor dh,dh
75 jmp short .curxyok