mirror of
https://github.com/FDOS/kernel.git
synced 2025-07-23 13:54:30 +02:00
Jemm's FASTBOOT needs interrupt vectors at 0070:0100 so put them there,
eliminating the need for JEMFBHLP.EXE git-svn-id: https://svn.code.sf.net/p/freedos/svn/kernel/trunk@1325 6ac86273-5f31-0410-b378-82cca8765d1b
This commit is contained in:
parent
fc3a696ca3
commit
dc840d98f4
@ -275,6 +275,12 @@ extern struct {
|
|||||||
|
|
||||||
extern UWORD DOSFAR LBA_WRITE_VERIFY;
|
extern UWORD DOSFAR LBA_WRITE_VERIFY;
|
||||||
|
|
||||||
|
/* original interrupt vectors, at 70:xxxx */
|
||||||
|
extern struct lowvec {
|
||||||
|
unsigned char intno;
|
||||||
|
intvec isv;
|
||||||
|
} DOSTEXTFAR ASM intvec_table[5];
|
||||||
|
|
||||||
/* floppy parameter table, at 70:xxxx */
|
/* floppy parameter table, at 70:xxxx */
|
||||||
extern unsigned char DOSTEXTFAR ASM int1e_table[0xe];
|
extern unsigned char DOSTEXTFAR ASM int1e_table[0xe];
|
||||||
|
|
||||||
|
@ -32,7 +32,7 @@
|
|||||||
|
|
||||||
%include "segs.inc"
|
%include "segs.inc"
|
||||||
|
|
||||||
segment _LOWTEXT
|
segment _IRQTEXT
|
||||||
|
|
||||||
old_vectors times 16 dd 0
|
old_vectors times 16 dd 0
|
||||||
stack_size dw 0
|
stack_size dw 0
|
||||||
@ -155,6 +155,10 @@ dont_switch: pushf
|
|||||||
iret
|
iret
|
||||||
|
|
||||||
|
|
||||||
|
; align to 100h to align _LOWTEXT for interrupt vectors
|
||||||
|
; in kernel.asm
|
||||||
|
times (100h - ($ - old_vectors)) db 0
|
||||||
|
|
||||||
segment INIT_TEXT
|
segment INIT_TEXT
|
||||||
|
|
||||||
global _init_stacks
|
global _init_stacks
|
||||||
|
@ -233,6 +233,21 @@ no_nul_read:
|
|||||||
retf
|
retf
|
||||||
|
|
||||||
segment _LOWTEXT
|
segment _LOWTEXT
|
||||||
|
|
||||||
|
; low interrupt vectors 10h,13h,15h,19h,1Bh
|
||||||
|
; these need to be at 0070:0100 (see RBIL memory.lst)
|
||||||
|
global _intvec_table
|
||||||
|
_intvec_table: db 10h
|
||||||
|
dd 0
|
||||||
|
db 13h
|
||||||
|
dd 0
|
||||||
|
db 15h
|
||||||
|
dd 0
|
||||||
|
db 19h
|
||||||
|
dd 0
|
||||||
|
db 1Bh
|
||||||
|
dd 0
|
||||||
|
|
||||||
; floppy parameter table
|
; floppy parameter table
|
||||||
global _int1e_table
|
global _int1e_table
|
||||||
_int1e_table: times 0eh db 0
|
_int1e_table: times 0eh db 0
|
||||||
|
@ -251,8 +251,11 @@ STATIC void setup_int_vectors(void)
|
|||||||
{ 0x2f, FP_OFF(int2f_handler) }
|
{ 0x2f, FP_OFF(int2f_handler) }
|
||||||
};
|
};
|
||||||
struct vec *pvec;
|
struct vec *pvec;
|
||||||
|
struct lowvec FAR *plvec;
|
||||||
int i;
|
int i;
|
||||||
|
|
||||||
|
for (plvec = intvec_table; plvec < intvec_table + 5; plvec++)
|
||||||
|
plvec->isv = getvec(plvec->intno);
|
||||||
for (i = 0x23; i <= 0x3f; i++)
|
for (i = 0x23; i <= 0x3f; i++)
|
||||||
setvec(i, empty_handler);
|
setvec(i, empty_handler);
|
||||||
for (pvec = vectors; pvec < vectors + (sizeof vectors/sizeof *pvec); pvec++)
|
for (pvec = vectors; pvec < vectors + (sizeof vectors/sizeof *pvec); pvec++)
|
||||||
|
@ -39,7 +39,7 @@ CPU XCPU
|
|||||||
%endif
|
%endif
|
||||||
|
|
||||||
group PGROUP PSP
|
group PGROUP PSP
|
||||||
group LGROUP _LOWTEXT _IO_TEXT _IO_FIXED_DATA _TEXT
|
group LGROUP _IRQTEXT _LOWTEXT _IO_TEXT _IO_FIXED_DATA _TEXT
|
||||||
group DGROUP _FIXED_DATA _BSS _DATA _DATAEND CONST CONST2 DCONST DYN_DATA
|
group DGROUP _FIXED_DATA _BSS _DATA _DATAEND CONST CONST2 DCONST DYN_DATA
|
||||||
%ifdef WATCOM
|
%ifdef WATCOM
|
||||||
group TGROUP HMA_TEXT_START HMA_TEXT HMA_TEXT_END INIT_TEXT_START INIT_TEXT INIT_TEXT_END
|
group TGROUP HMA_TEXT_START HMA_TEXT HMA_TEXT_END INIT_TEXT_START INIT_TEXT INIT_TEXT_END
|
||||||
@ -51,6 +51,7 @@ group I_GROUP ID_B ID ID_E IC IDATA IB_B IB IB_E
|
|||||||
%endif
|
%endif
|
||||||
|
|
||||||
segment PSP class=PSP
|
segment PSP class=PSP
|
||||||
|
segment _IRQTEXT class=LCODE
|
||||||
segment _LOWTEXT class=LCODE
|
segment _LOWTEXT class=LCODE
|
||||||
segment _IO_TEXT class=LCODE
|
segment _IO_TEXT class=LCODE
|
||||||
segment _IO_FIXED_DATA class=LCODE align=2
|
segment _IO_FIXED_DATA class=LCODE align=2
|
||||||
|
Loading…
x
Reference in New Issue
Block a user