4 else if (!strcasecmp(vga,"ext") || !strcasecmp(vga,"extended"))
5 descr->vga_mode = EXTENDED_VGA;
6 else if (!strcasecmp(vga,"ask")) descr->vga_mode = ASK_VGA;
7 + else if (!strcasecmp(vga,"inst")) descr->vga_mode = INST_VGA;
8 else descr->vga_mode = to_number(vga);
21 printf("%d (0x%04x)\n",
22 descrs.d.descr[image].vga_mode,
26 #define FLAG_RETAIN 0x2000 /* retain BMP screen on boot */
28 #define VGA_NOCOVR 0x8000 /* VGA setting not overridden on command line */
29 +#define INST_VGA 0xfff0 /* test for framebuffer at vga=771 */
31 #define SER_DFL_PRM 0xa3 /* default serial parameters: 2400n8 */
33 --- lilo-22.7/second.S
34 +++ lilo-22.7/second.S
38 or cx,cx ; test CX==0 means all okay
45 @@ -1300,13 +1301,153 @@
46 or cl,cl ! no errors ?
47 jnz pwfail ! no -> fail
48 cmp byte ptr (si),#0 ! at end ?
49 - je doboot ! yes -> continue booting
50 + jne pwfail ! yes -> continue booting
52 #endif /* CRC_PASSWORDS */
54 pwfail: mov bx,#msg_pf ! display an error message
56 br iloop ! get next input
58 +! Test if the monitor can display a vga mode
59 +! mode in ax, returns ax if success, otherwise 0
104 + .byte 5,5,9,9,14,14,15,15,0,0,0,0,0,0,0,0
105 + .byte 5,5,5,9,9,9,14,14,14,15,15,15
107 +! return in cx the bits for FSC notebooks.
117 +fscnn: cmp dword ptr (di),#0x696a7546
119 + cmp dword ptr 4(di),#0x20757374
150 + .word 0,0x0020,0x0200,0x4000,0x8000,0x8000,0,0
151 + .word 0x8000,0,0,0,0,0,0,0
153 +! Test if the driver can display a vga mode
154 +! mode in ax, returns ax if success, otherwise 0
197 ! Boot the image BX points to
199 doboot: mov byte ptr prechr,#61 ! switch to equal sign
200 @@ -1484,8 +1625,33 @@
202 vganorm:test bx,#FLAG_VGA
205 - mov [VGA_SET],ax ! magic offset in the boot sector
228 + mov ax,#NORMAL_VGA-0x0200
232 + mov [VGA_SET],ax ! magic offset in the boot sector
233 novga: push bx ! use flags (BX) later
234 test bx,#FLAG_LOCK ! ... lock target ?
235 jnz lockit ! yup -> do it
236 @@ -3295,6 +3461,9 @@