summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorhpa <hpa>2001-04-09 23:37:47 +0000
committerhpa <hpa>2001-04-09 23:37:47 +0000
commitdc3527e436b17a07814968f76d020c6ccefb8e0e (patch)
tree66b8eb72daf966d8c3bd23f2dc3dda8e6362775c
parenta2c7c8b75f374fcc3c0cc2ff8dd83ac895dc09ac (diff)
downloadsyslinux-dc3527e436b17a07814968f76d020c6ccefb8e0e.tar.gz
Try to improve the relability of the error routine.
-rw-r--r--isolinux.asm13
1 files changed, 8 insertions, 5 deletions
diff --git a/isolinux.asm b/isolinux.asm
index 9f2e75d2..be97c373 100644
--- a/isolinux.asm
+++ b/isolinux.asm
@@ -773,8 +773,9 @@ kaboom:
mov si,err_bootfailed
call cwritestr
call getchar
- int 19h
-.norge: jmp short .norge
+ cli
+ mov word [BIOS_magic],0 ; Cold reboot
+ jmp 0F000h:0FFF0h ; Reset vector address
;
; Data that needs to be in the first sector
@@ -855,6 +856,9 @@ dapa: dw 16 ; Packet size
.lba: dd 0 ; LBA (LSW)
dd 0 ; LBA (MSW)
+ alignb 4, db 0
+Stack dw _start, 0 ; SS:SP for stack reset
+
rl_checkpt equ $ ; Must be <= 800h
rl_checkpt_off equ ($-$$)
@@ -4258,7 +4262,7 @@ A20List dw a20_dunno, a20_none, a20_bios, a20_kbc, a20_fast
A20DList dw a20d_dunno, a20d_none, a20d_bios, a20d_kbc, a20d_fast
A20Type dw A20_DUNNO ; A20 type unknown
VGAFontSize dw 16 ; Defaults to 16 byte font
-Stack dw _start, 0 ; SS:SP for stack reset
+ScrollAttribute db 07h ; White on black (for text mode)
;
; Variables that are uninitialized in SYSLINUX but initialized here
@@ -4266,6 +4270,7 @@ Stack dw _start, 0 ; SS:SP for stack reset
; **** ISOLINUX:: We may have to make this flexible, based on what the
; **** BIOS expects our "sector size" to be.
;
+ alignb 2, db 0
ClustSize dw SECTORSIZE ; Bytes/cluster
SecPerClust dw 1 ; Same as bsSecPerClust, but a word
BufSafe dw trackbufsize/SECTORSIZE ; Clusters we can load into trackbuf
@@ -4276,8 +4281,6 @@ ClustPerMoby dw 65536/SECTORSIZE ; Clusters per 64K
%if ( trackbufsize % SECTORSIZE ) != 0
%error trackbufsize must be a multiple of SECTORSIZE
%endif
-ScrollAttribute db 07h ; White on black (for text mode)
-
;
; Stuff for the command line; we do some trickery here with equ to avoid