mirror of
https://github.com/FDOS/kernel.git
synced 2025-07-23 13:54:30 +02:00
ia16-elf-gcc port: compile all asm files with -f elf.
Because ia16-elf-gcc and the GNU linker do not understand OMF we need to use ELF everywhere. This also means we cannot use "wrt", "seg" and "call/jmp far". Most wrt's are superfluous, and seg and call/jmp far can be replaced by explicit ?GROUP references (to be defined in the linker script).
This commit is contained in:
parent
fbdbc4c25c
commit
7bf4b77233
@ -36,15 +36,15 @@ segment HMA_TEXT
|
|||||||
global _DosIdle_int
|
global _DosIdle_int
|
||||||
global _DosIdle_hlt
|
global _DosIdle_hlt
|
||||||
|
|
||||||
extern _InDOS:wrt DGROUP
|
extern _InDOS
|
||||||
extern _cu_psp:wrt DGROUP
|
extern _cu_psp
|
||||||
extern _MachineId:wrt DGROUP
|
extern _MachineId
|
||||||
extern critical_sp:wrt DGROUP
|
extern critical_sp
|
||||||
extern _user_r:wrt DGROUP
|
extern _user_r
|
||||||
; variables as the following are "part of" module inthndlr.c
|
; variables as the following are "part of" module inthndlr.c
|
||||||
; because of the define MAIN before include globals.h there!
|
; because of the define MAIN before include globals.h there!
|
||||||
extern _HaltCpuWhileIdle:wrt DGROUP
|
extern _HaltCpuWhileIdle
|
||||||
extern _DGROUP_:wrt HMA_TEXT
|
extern _DGROUP_
|
||||||
;
|
;
|
||||||
_DosIdle_hlt:
|
_DosIdle_hlt:
|
||||||
push ds
|
push ds
|
||||||
|
@ -35,20 +35,20 @@ segment HMA_TEXT
|
|||||||
extern _int21_syscall
|
extern _int21_syscall
|
||||||
extern _int21_service
|
extern _int21_service
|
||||||
extern _int2526_handler
|
extern _int2526_handler
|
||||||
extern _error_tos:wrt DGROUP
|
extern _error_tos
|
||||||
extern _char_api_tos:wrt DGROUP
|
extern _char_api_tos
|
||||||
extern _disk_api_tos:wrt DGROUP
|
extern _disk_api_tos
|
||||||
extern _user_r:wrt DGROUP
|
extern _user_r
|
||||||
extern _ErrorMode:wrt DGROUP
|
extern _ErrorMode
|
||||||
extern _InDOS:wrt DGROUP
|
extern _InDOS
|
||||||
extern _cu_psp:wrt DGROUP
|
extern _cu_psp
|
||||||
extern _MachineId:wrt DGROUP
|
extern _MachineId
|
||||||
extern critical_sp:wrt DGROUP
|
extern critical_sp
|
||||||
|
|
||||||
extern int21regs_seg:wrt DGROUP
|
extern int21regs_seg
|
||||||
extern int21regs_off:wrt DGROUP
|
extern int21regs_off
|
||||||
|
|
||||||
extern _Int21AX:wrt DGROUP
|
extern _Int21AX
|
||||||
|
|
||||||
extern _DGROUP_
|
extern _DGROUP_
|
||||||
|
|
||||||
|
@ -32,8 +32,8 @@
|
|||||||
%include "stacks.inc"
|
%include "stacks.inc"
|
||||||
|
|
||||||
segment HMA_TEXT
|
segment HMA_TEXT
|
||||||
extern _cu_psp:wrt DGROUP
|
extern _cu_psp
|
||||||
extern _HaltCpuWhileIdle:wrt DGROUP
|
extern _HaltCpuWhileIdle
|
||||||
extern _syscall_MUX14
|
extern _syscall_MUX14
|
||||||
|
|
||||||
extern _DGROUP_
|
extern _DGROUP_
|
||||||
@ -123,7 +123,7 @@ Int2f?iret:
|
|||||||
|
|
||||||
; DRIVER.SYS calls - now only 0803.
|
; DRIVER.SYS calls - now only 0803.
|
||||||
DriverSysCal:
|
DriverSysCal:
|
||||||
extern _Dyn:wrt DGROUP
|
extern _Dyn
|
||||||
cmp al, 3
|
cmp al, 3
|
||||||
jne Int2f?iret
|
jne Int2f?iret
|
||||||
mov ds, [cs:_DGROUP_]
|
mov ds, [cs:_DGROUP_]
|
||||||
@ -431,7 +431,7 @@ int2f_restore_ds:
|
|||||||
; extern UWORD ASMPASCAL call_nls(UWORD bp, UWORD FAR *buf,
|
; extern UWORD ASMPASCAL call_nls(UWORD bp, UWORD FAR *buf,
|
||||||
; UWORD subfct, UWORD cp, UWORD cntry, UWORD bufsize);
|
; UWORD subfct, UWORD cp, UWORD cntry, UWORD bufsize);
|
||||||
|
|
||||||
extern _nlsInfo:wrt DGROUP
|
extern _nlsInfo
|
||||||
global CALL_NLS
|
global CALL_NLS
|
||||||
CALL_NLS:
|
CALL_NLS:
|
||||||
pop es ; ret addr
|
pop es ; ret addr
|
||||||
|
@ -31,18 +31,18 @@
|
|||||||
%include "segs.inc"
|
%include "segs.inc"
|
||||||
%include "stacks.inc"
|
%include "stacks.inc"
|
||||||
|
|
||||||
extern ConTable:wrt LGROUP
|
extern ConTable
|
||||||
extern LptTable:wrt LGROUP
|
extern LptTable
|
||||||
extern ComTable:wrt LGROUP
|
extern ComTable
|
||||||
extern uPrtNo:wrt LGROUP
|
extern uPrtNo
|
||||||
extern CommonNdRdExit:wrt LGROUP
|
extern CommonNdRdExit
|
||||||
;!! extern _NumFloppies:wrt DGROUP
|
;!! extern _NumFloppies
|
||||||
extern blk_stk_top:wrt DGROUP
|
extern blk_stk_top
|
||||||
extern clk_stk_top:wrt DGROUP
|
extern clk_stk_top
|
||||||
extern _reloc_call_blk_driver
|
extern _reloc_call_blk_driver
|
||||||
extern _reloc_call_clk_driver
|
extern _reloc_call_clk_driver
|
||||||
|
|
||||||
extern _TEXT_DGROUP:wrt LGROUP
|
extern _TEXT_DGROUP
|
||||||
|
|
||||||
;---------------------------------------------------
|
;---------------------------------------------------
|
||||||
;
|
;
|
||||||
@ -501,12 +501,12 @@ GetUnitNum:
|
|||||||
blk_driver_params:
|
blk_driver_params:
|
||||||
dw blk_stk_top
|
dw blk_stk_top
|
||||||
dw _reloc_call_blk_driver
|
dw _reloc_call_blk_driver
|
||||||
dw seg _reloc_call_blk_driver
|
dw DGROUP
|
||||||
|
|
||||||
clk_driver_params:
|
clk_driver_params:
|
||||||
dw clk_stk_top
|
dw clk_stk_top
|
||||||
dw _reloc_call_clk_driver
|
dw _reloc_call_clk_driver
|
||||||
dw seg _reloc_call_clk_driver
|
dw DGROUP
|
||||||
|
|
||||||
; clock device interrupt
|
; clock device interrupt
|
||||||
clk_entry:
|
clk_entry:
|
||||||
|
@ -49,12 +49,12 @@
|
|||||||
%define E_FAILURE 12 ; General Failure
|
%define E_FAILURE 12 ; General Failure
|
||||||
|
|
||||||
|
|
||||||
extern _IOExit:wrt LGROUP
|
extern _IOExit
|
||||||
extern _IOSuccess:wrt LGROUP
|
extern _IOSuccess
|
||||||
extern _IOErrorExit:wrt LGROUP
|
extern _IOErrorExit
|
||||||
extern _IOErrCnt:wrt LGROUP
|
extern _IOErrCnt
|
||||||
extern _IODone:wrt LGROUP
|
extern _IODone
|
||||||
extern _IOCommandError:wrt LGROUP
|
extern _IOCommandError
|
||||||
extern GetUnitNum:wrt LGROUP
|
extern GetUnitNum
|
||||||
extern _ReqPktPtr:wrt LGROUP
|
extern _ReqPktPtr
|
||||||
|
|
||||||
|
@ -34,7 +34,7 @@
|
|||||||
|
|
||||||
segment PSP
|
segment PSP
|
||||||
|
|
||||||
extern _ReqPktPtr:wrt LGROUP
|
extern _ReqPktPtr
|
||||||
|
|
||||||
STACK_SIZE equ 384/2 ; stack allocated in words
|
STACK_SIZE equ 384/2 ; stack allocated in words
|
||||||
|
|
||||||
@ -42,7 +42,9 @@ STACK_SIZE equ 384/2 ; stack allocated in words
|
|||||||
; KERNEL BEGINS HERE, i.e. this is byte 0 of KERNEL.SYS
|
; KERNEL BEGINS HERE, i.e. this is byte 0 of KERNEL.SYS
|
||||||
;************************************************************
|
;************************************************************
|
||||||
|
|
||||||
|
%ifidn __OUTPUT_FORMAT__, obj
|
||||||
..start:
|
..start:
|
||||||
|
%endif
|
||||||
entry:
|
entry:
|
||||||
jmp short realentry
|
jmp short realentry
|
||||||
|
|
||||||
@ -103,8 +105,8 @@ realentry: ; execution continues here
|
|||||||
pop bx
|
pop bx
|
||||||
pop ax
|
pop ax
|
||||||
|
|
||||||
jmp far kernel_start
|
jmp IGROUP:kernel_start
|
||||||
beyond_entry: resb 256-(beyond_entry-entry)
|
beyond_entry: times 256-(beyond_entry-entry) db 0
|
||||||
; scratch area for data (DOS_PSP)
|
; scratch area for data (DOS_PSP)
|
||||||
|
|
||||||
segment INIT_TEXT
|
segment INIT_TEXT
|
||||||
@ -125,31 +127,31 @@ kernel_start:
|
|||||||
popf
|
popf
|
||||||
pop bx
|
pop bx
|
||||||
|
|
||||||
mov ax,seg init_tos
|
mov ax,I_GROUP
|
||||||
cli
|
cli
|
||||||
mov ss,ax
|
mov ss,ax
|
||||||
mov sp,init_tos
|
mov sp,init_tos
|
||||||
int 12h ; move init text+data to higher memory
|
int 12h ; move init text+data to higher memory
|
||||||
mov cl,6
|
mov cl,6
|
||||||
shl ax,cl ; convert kb to para
|
shl ax,cl ; convert kb to para
|
||||||
mov dx,15 + init_end wrt INIT_TEXT
|
mov dx,15 + INITSIZE
|
||||||
mov cl,4
|
mov cl,4
|
||||||
shr dx,cl
|
shr dx,cl
|
||||||
sub ax,dx
|
sub ax,dx
|
||||||
mov es,ax
|
mov es,ax
|
||||||
mov dx,__INIT_DATA_START wrt INIT_TEXT ; para aligned
|
mov dx,INITTEXTSIZE ; para aligned
|
||||||
shr dx,cl
|
shr dx,cl
|
||||||
add ax,dx
|
add ax,dx
|
||||||
mov ss,ax ; set SS to init data segment
|
mov ss,ax ; set SS to init data segment
|
||||||
sti ; now enable them
|
sti ; now enable them
|
||||||
mov ax,cs
|
mov ax,cs
|
||||||
mov dx,__InitTextStart wrt HMA_TEXT ; para aligned
|
mov dx,__HMATextEnd ; para aligned
|
||||||
shr dx,cl
|
shr dx,cl
|
||||||
%ifdef WATCOM
|
%ifdef WATCOM
|
||||||
add ax,dx
|
add ax,dx
|
||||||
%endif
|
%endif
|
||||||
mov ds,ax
|
mov ds,ax
|
||||||
mov si,-2 + init_end wrt INIT_TEXT ; word aligned
|
mov si,-2 + INITSIZE; word aligned
|
||||||
lea cx,[si+2]
|
lea cx,[si+2]
|
||||||
mov di,si
|
mov di,si
|
||||||
shr cx,1
|
shr cx,1
|
||||||
@ -163,7 +165,7 @@ kernel_start:
|
|||||||
sub ax,dx
|
sub ax,dx
|
||||||
mov es,ax ; es = new HMA_TEXT
|
mov es,ax ; es = new HMA_TEXT
|
||||||
|
|
||||||
mov si,-2 + __InitTextStart wrt HMA_TEXT
|
mov si,-2 + __HMATextEnd
|
||||||
lea cx,[si+2]
|
lea cx,[si+2]
|
||||||
mov di,si
|
mov di,si
|
||||||
shr cx,1
|
shr cx,1
|
||||||
@ -289,7 +291,7 @@ segment CONST
|
|||||||
global _nul_strtgy
|
global _nul_strtgy
|
||||||
extern GenStrategy
|
extern GenStrategy
|
||||||
_nul_strtgy:
|
_nul_strtgy:
|
||||||
jmp far GenStrategy
|
jmp LGROUP:GenStrategy
|
||||||
|
|
||||||
;
|
;
|
||||||
; NUL device interrupt
|
; NUL device interrupt
|
||||||
@ -378,7 +380,7 @@ _sfthead dd 0 ; 0004 System File Table head
|
|||||||
global _clock
|
global _clock
|
||||||
_clock dd 0 ; 0008 CLOCK$ device
|
_clock dd 0 ; 0008 CLOCK$ device
|
||||||
global _syscon
|
global _syscon
|
||||||
_syscon dw _con_dev,seg _con_dev ; 000c console device
|
_syscon dw _con_dev,LGROUP ; 000c console device
|
||||||
global _maxsecsize
|
global _maxsecsize
|
||||||
_maxsecsize dw 512 ; 0010 maximum bytes/sector of any block device
|
_maxsecsize dw 512 ; 0010 maximum bytes/sector of any block device
|
||||||
dd 0 ; 0012 pointer to buffers info structure
|
dd 0 ; 0012 pointer to buffers info structure
|
||||||
@ -394,8 +396,8 @@ _nblkdev db 0 ; 0020 number of block devices
|
|||||||
_lastdrive db 0 ; 0021 value of last drive
|
_lastdrive db 0 ; 0021 value of last drive
|
||||||
global _nul_dev
|
global _nul_dev
|
||||||
_nul_dev: ; 0022 device chain root
|
_nul_dev: ; 0022 device chain root
|
||||||
extern _con_dev:wrt LGROUP
|
extern _con_dev
|
||||||
dw _con_dev, seg _con_dev
|
dw _con_dev, LGROUP
|
||||||
; next is con_dev at init time.
|
; next is con_dev at init time.
|
||||||
dw 8004h ; attributes = char device, NUL bit set
|
dw 8004h ; attributes = char device, NUL bit set
|
||||||
dw _nul_strtgy
|
dw _nul_strtgy
|
||||||
@ -885,9 +887,9 @@ __U4D:
|
|||||||
LDIVMODU
|
LDIVMODU
|
||||||
%endif
|
%endif
|
||||||
|
|
||||||
resb 0xd0 - ($-begin_hma)
|
times 0xd0 - ($-begin_hma) db 0
|
||||||
; reserve space for far jump to cp/m routine
|
; reserve space for far jump to cp/m routine
|
||||||
resb 5
|
times 5 db 0
|
||||||
|
|
||||||
;End of HMA segment
|
;End of HMA segment
|
||||||
segment HMA_TEXT_END
|
segment HMA_TEXT_END
|
||||||
@ -899,7 +901,7 @@ __HMATextEnd: ; and c version
|
|||||||
; The default stack (_TEXT:0) will overwrite the data area, so I create a dummy
|
; The default stack (_TEXT:0) will overwrite the data area, so I create a dummy
|
||||||
; stack here to ease debugging. -- ror4
|
; stack here to ease debugging. -- ror4
|
||||||
|
|
||||||
segment _STACK class=STACK stack
|
segment _STACK class(STACK) nobits stack
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@ -1067,7 +1069,7 @@ forceEnableA20retry:
|
|||||||
; ok, we have to enable A20 )at least seems so
|
; ok, we have to enable A20 )at least seems so
|
||||||
;
|
;
|
||||||
|
|
||||||
call far _ENABLEA20
|
call DGROUP:_ENABLEA20
|
||||||
|
|
||||||
jmp short forceEnableA20retry
|
jmp short forceEnableA20retry
|
||||||
|
|
||||||
@ -1096,7 +1098,7 @@ _ExecUserDisableA20:
|
|||||||
je noNeedToDisable
|
je noNeedToDisable
|
||||||
NeedToDisable:
|
NeedToDisable:
|
||||||
push ax
|
push ax
|
||||||
call far _DISABLEA20
|
call DGROUP:_DISABLEA20
|
||||||
pop ax
|
pop ax
|
||||||
noNeedToDisable:
|
noNeedToDisable:
|
||||||
iret
|
iret
|
||||||
|
@ -14,15 +14,15 @@ _nlsPackageHardcoded:
|
|||||||
DB 000h, 000h, 000h, 000h, 001h, 000h, 0b5h, 001h
|
DB 000h, 000h, 000h, 000h, 001h, 000h, 0b5h, 001h
|
||||||
DB 00fh, 000h, 059h, 000h, 04eh, 000h, 006h, 000h
|
DB 00fh, 000h, 059h, 000h, 04eh, 000h, 006h, 000h
|
||||||
DB 002h
|
DB 002h
|
||||||
DW ?table2, SEG ?table2
|
DW ?table2, DGROUP
|
||||||
DB 004h
|
DB 004h
|
||||||
DW ?table4, SEG ?table4
|
DW ?table4, DGROUP
|
||||||
DB 005h
|
DB 005h
|
||||||
DW ?table5, SEG ?table5
|
DW ?table5, DGROUP
|
||||||
DB 006h
|
DB 006h
|
||||||
DW ?table6, SEG ?table6
|
DW ?table6, DGROUP
|
||||||
DB 007h
|
DB 007h
|
||||||
DW ?table7, SEG ?table7
|
DW ?table7, DGROUP
|
||||||
GLOBAL _nlsCountryInfoHardcoded
|
GLOBAL _nlsCountryInfoHardcoded
|
||||||
_nlsCountryInfoHardcoded:
|
_nlsCountryInfoHardcoded:
|
||||||
DB 001h
|
DB 001h
|
||||||
@ -32,8 +32,8 @@ _nlsCntryInfoHardcoded:
|
|||||||
DB 01ch, 000h, 001h, 000h, 0b5h, 001h, 000h, 000h
|
DB 01ch, 000h, 001h, 000h, 0b5h, 001h, 000h, 000h
|
||||||
DB 024h, 000h, 000h, 000h, 000h, 02ch, 000h, 02eh
|
DB 024h, 000h, 000h, 000h, 000h, 02ch, 000h, 02eh
|
||||||
DB 000h, 02dh, 000h, 03ah, 000h, 000h, 002h, 000h
|
DB 000h, 02dh, 000h, 03ah, 000h, 000h, 002h, 000h
|
||||||
extern _CharMapSrvc:wrt DGROUP
|
extern _CharMapSrvc
|
||||||
DW _CharMapSrvc, SEG _CharMapSrvc
|
DW _CharMapSrvc, DGROUP
|
||||||
DB 02ch, 000h
|
DB 02ch, 000h
|
||||||
GLOBAL _hcTablesStart
|
GLOBAL _hcTablesStart
|
||||||
_hcTablesStart:
|
_hcTablesStart:
|
||||||
|
@ -31,10 +31,10 @@
|
|||||||
|
|
||||||
%include "segs.inc"
|
%include "segs.inc"
|
||||||
|
|
||||||
extern _user_r:wrt DGROUP
|
extern _user_r
|
||||||
|
|
||||||
extern _break_flg:wrt DGROUP ; break detected flag
|
extern _break_flg ; break detected flag
|
||||||
extern _int21_handler:wrt DGROUP ; far call system services
|
extern _int21_handler ; far call system services
|
||||||
|
|
||||||
%include "stacks.inc"
|
%include "stacks.inc"
|
||||||
|
|
||||||
@ -71,7 +71,7 @@ _exec_user:
|
|||||||
;
|
;
|
||||||
POP$ALL
|
POP$ALL
|
||||||
extern _ExecUserDisableA20
|
extern _ExecUserDisableA20
|
||||||
jmp far _ExecUserDisableA20
|
jmp DGROUP:_ExecUserDisableA20
|
||||||
do_iret:
|
do_iret:
|
||||||
extern _int21_iret
|
extern _int21_iret
|
||||||
jmp _int21_iret
|
jmp _int21_iret
|
||||||
@ -263,7 +263,7 @@ _spawn_int23:
|
|||||||
|
|
||||||
??int23_respawn:
|
??int23_respawn:
|
||||||
pop bp ;; Restore the original register
|
pop bp ;; Restore the original register
|
||||||
jmp far _int21_handler
|
jmp DGROUP:_int21_handler
|
||||||
|
|
||||||
;
|
;
|
||||||
; interrupt enable and disable routines
|
; interrupt enable and disable routines
|
||||||
|
@ -43,57 +43,81 @@ CPU XCPU
|
|||||||
%define WATCOM
|
%define WATCOM
|
||||||
%endif
|
%endif
|
||||||
|
|
||||||
|
%ifidn __OUTPUT_FORMAT__, obj
|
||||||
group PGROUP PSP
|
group PGROUP PSP
|
||||||
group LGROUP _IRQTEXT _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
|
||||||
|
%define IGROUP TGROUP
|
||||||
group I_GROUP ID_B I_DATA ICONST ICONST2 ID_E IB_B I_BSS IB_E
|
group I_GROUP ID_B I_DATA ICONST ICONST2 ID_E IB_B I_BSS IB_E
|
||||||
%else
|
%else
|
||||||
group TGROUP HMA_TEXT_START HMA_TEXT HMA_TEXT_END
|
group TGROUP HMA_TEXT_START HMA_TEXT HMA_TEXT_END
|
||||||
group IGROUP INIT_TEXT_START INIT_TEXT INIT_TEXT_END
|
group IGROUP INIT_TEXT_START INIT_TEXT INIT_TEXT_END
|
||||||
group I_GROUP ID_B ID ID_E IC IDATA IB_B IB IB_E
|
group I_GROUP ID_B ID ID_E IC IDATA IB_B IB IB_E
|
||||||
%endif
|
%endif
|
||||||
|
%define class(x) class=x
|
||||||
|
%define nobits
|
||||||
|
%define exec
|
||||||
|
%define INITSIZE init_end wrt INIT_TEXT
|
||||||
|
%define INITTEXTSIZE __INIT_DATA_START wrt INIT_TEXT
|
||||||
|
|
||||||
segment PSP class=PSP
|
%else ; using ELF
|
||||||
segment _IRQTEXT class=LCODE
|
|
||||||
segment _LOWTEXT class=LCODE
|
BITS 16
|
||||||
segment _IO_TEXT class=LCODE
|
; groups are defined in the linker script kernel.ld
|
||||||
segment _IO_FIXED_DATA class=LCODE align=2
|
extern PGROUP
|
||||||
segment _TEXT class=LCODE
|
extern DGROUP
|
||||||
segment _FIXED_DATA class=FDATA align=16
|
extern LGROUP
|
||||||
segment _BSS class=BSS align=2
|
extern TGROUP
|
||||||
segment _DATA class=DATA align=2
|
extern IGROUP
|
||||||
segment _DATAEND class=DATA align=1
|
extern I_GROUP
|
||||||
|
%define class(x)
|
||||||
|
%define stack
|
||||||
|
extern INITSIZE
|
||||||
|
%define INITTEXTSIZE __InitTextEnd
|
||||||
|
|
||||||
|
%endif
|
||||||
|
|
||||||
|
segment PSP class(PSP)
|
||||||
|
segment _IRQTEXT class(LCODE) exec
|
||||||
|
segment _LOWTEXT class(LCODE) exec
|
||||||
|
segment _IO_TEXT class(LCODE) exec
|
||||||
|
segment _IO_FIXED_DATA class(LCODE) align=2
|
||||||
|
segment _TEXT class(LCODE) exec
|
||||||
|
segment _FIXED_DATA class(FDATA) align=16
|
||||||
|
segment _BSS class(BSS) align=2
|
||||||
|
segment _DATA class(DATA) align=2
|
||||||
|
segment _DATAEND class(DATA) align=1
|
||||||
;for WATCOM
|
;for WATCOM
|
||||||
segment CONST class=DATA align=2
|
segment CONST class(DATA) align=2
|
||||||
segment CONST2 class=DATA align=2
|
segment CONST2 class(DATA) align=2
|
||||||
;for MSC
|
;for MSC
|
||||||
segment DCONST class=DCONST align=2
|
segment DCONST class(DCONST) align=2
|
||||||
segment DYN_DATA class=DYN_DATA
|
segment DYN_DATA class(DYN_DATA)
|
||||||
segment HMA_TEXT_START class=CODE align=16
|
segment HMA_TEXT_START class(CODE) align=16
|
||||||
segment HMA_TEXT class=CODE
|
segment HMA_TEXT class(CODE) exec
|
||||||
segment HMA_TEXT_END class=CODE
|
segment HMA_TEXT_END class(CODE) align=16
|
||||||
segment INIT_TEXT_START class=CODE align=16
|
segment INIT_TEXT_START class(CODE) align=16
|
||||||
segment INIT_TEXT class=CODE
|
segment INIT_TEXT class(CODE) exec
|
||||||
segment INIT_TEXT_END class=CODE
|
segment INIT_TEXT_END class(CODE) align=16
|
||||||
|
|
||||||
%ifdef WATCOM
|
%ifdef WATCOM
|
||||||
segment ID_B class=FAR_DATA align=16
|
segment ID_B class(FAR_DATA) align=16
|
||||||
segment I_DATA class=FAR_DATA align=2
|
segment I_DATA class(FAR_DATA) align=2
|
||||||
segment ICONST class=FAR_DATA align=2
|
segment ICONST class(FAR_DATA) align=2
|
||||||
segment ICONST2 class=FAR_DATA align=2
|
segment ICONST2 class(FAR_DATA) align=2
|
||||||
segment ID_E class=FAR_DATA align=2
|
segment ID_E class(FAR_DATA) align=2
|
||||||
segment IB_B class=FAR_DATA align=2
|
segment IB_B class(FAR_DATA) align=2
|
||||||
segment I_BSS class=FAR_DATA align=2
|
segment I_BSS class(FAR_DATA) align=2
|
||||||
segment IB_E class=FAR_DATA align=2
|
segment IB_E class(FAR_DATA) align=2
|
||||||
%else
|
%else
|
||||||
segment ID_B class=ID align=16
|
segment ID_B class(ID) align=16
|
||||||
segment ID class=ID align=2
|
segment ID class(ID) align=2
|
||||||
segment IDATA class=ID align=2
|
segment IDATA class(ID) align=2
|
||||||
segment ID_E class=ID align=2
|
segment ID_E class(ID) align=2
|
||||||
segment IC class=IC align=2
|
segment IC class(IC) align=2
|
||||||
segment IB_B class=IB align=2
|
segment IB_B class(IB) align=2 nobits
|
||||||
segment IB class=IB align=2
|
segment IB class(IB) align=2 nobits
|
||||||
segment IB_E class=IB align=2
|
segment IB_E class(IB) align=2 nobits
|
||||||
%endif
|
%endif
|
||||||
|
@ -50,7 +50,7 @@ ComTable db 0Ah
|
|||||||
|
|
||||||
segment _IO_TEXT
|
segment _IO_TEXT
|
||||||
|
|
||||||
extern CommonNdRdExit:wrt LGROUP
|
extern CommonNdRdExit
|
||||||
|
|
||||||
ComRead:
|
ComRead:
|
||||||
jcxz ComRd3
|
jcxz ComRd3
|
||||||
|
@ -38,6 +38,7 @@ TARGET=KGC
|
|||||||
ALLCFLAGS=-I../hdr $(TARGETOPT) $(ALLCFLAGS) -mcmodel=small -fleading-underscore -fno-common -fpack-struct -ffreestanding -fcall-used-es -mrtd -w -Werror
|
ALLCFLAGS=-I../hdr $(TARGETOPT) $(ALLCFLAGS) -mcmodel=small -fleading-underscore -fno-common -fpack-struct -ffreestanding -fcall-used-es -mrtd -w -Werror
|
||||||
INITCFLAGS=$(ALLCFLAGS) -o $@
|
INITCFLAGS=$(ALLCFLAGS) -o $@
|
||||||
CFLAGS=$(ALLCFLAGS) -o $@
|
CFLAGS=$(ALLCFLAGS) -o $@
|
||||||
|
NASMFLAGS=$(NASMFLAGS) -f elf -o $@
|
||||||
|
|
||||||
DIRSEP=/
|
DIRSEP=/
|
||||||
RM=rm -f
|
RM=rm -f
|
||||||
|
@ -47,7 +47,7 @@ CLC=$(CL) $(CFLAGSC) -I$(INCLUDEPATH)
|
|||||||
TARGET=$(TARGET)$(XCPU)$(XFAT)
|
TARGET=$(TARGET)$(XCPU)$(XFAT)
|
||||||
|
|
||||||
.asm.obj :
|
.asm.obj :
|
||||||
$(NASM) -D$(COMPILER) $(NASMFLAGS) -f obj $*.asm
|
$(NASM) -D$(COMPILER) -f obj $(NASMFLAGS) $*.asm
|
||||||
|
|
||||||
# *Implicit Rules*
|
# *Implicit Rules*
|
||||||
.c.obj :
|
.c.obj :
|
||||||
|
Loading…
x
Reference in New Issue
Block a user