mirror of
https://github.com/FDOS/kernel.git
synced 2025-07-22 21:34:33 +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;
|
||||
|
||||
/* 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 */
|
||||
extern unsigned char DOSTEXTFAR ASM int1e_table[0xe];
|
||||
|
||||
|
@ -32,7 +32,7 @@
|
||||
|
||||
%include "segs.inc"
|
||||
|
||||
segment _LOWTEXT
|
||||
segment _IRQTEXT
|
||||
|
||||
old_vectors times 16 dd 0
|
||||
stack_size dw 0
|
||||
@ -155,6 +155,10 @@ dont_switch: pushf
|
||||
iret
|
||||
|
||||
|
||||
; align to 100h to align _LOWTEXT for interrupt vectors
|
||||
; in kernel.asm
|
||||
times (100h - ($ - old_vectors)) db 0
|
||||
|
||||
segment INIT_TEXT
|
||||
|
||||
global _init_stacks
|
||||
|
@ -233,6 +233,21 @@ no_nul_read:
|
||||
retf
|
||||
|
||||
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
|
||||
global _int1e_table
|
||||
_int1e_table: times 0eh db 0
|
||||
|
@ -251,8 +251,11 @@ STATIC void setup_int_vectors(void)
|
||||
{ 0x2f, FP_OFF(int2f_handler) }
|
||||
};
|
||||
struct vec *pvec;
|
||||
struct lowvec FAR *plvec;
|
||||
int i;
|
||||
|
||||
for (plvec = intvec_table; plvec < intvec_table + 5; plvec++)
|
||||
plvec->isv = getvec(plvec->intno);
|
||||
for (i = 0x23; i <= 0x3f; i++)
|
||||
setvec(i, empty_handler);
|
||||
for (pvec = vectors; pvec < vectors + (sizeof vectors/sizeof *pvec); pvec++)
|
||||
|
@ -39,7 +39,7 @@ CPU XCPU
|
||||
%endif
|
||||
|
||||
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
|
||||
%ifdef WATCOM
|
||||
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
|
||||
|
||||
segment PSP class=PSP
|
||||
segment _IRQTEXT class=LCODE
|
||||
segment _LOWTEXT class=LCODE
|
||||
segment _IO_TEXT class=LCODE
|
||||
segment _IO_FIXED_DATA class=LCODE align=2
|
||||
|
Loading…
x
Reference in New Issue
Block a user