83 lines
2.1 KiB
NASM
83 lines
2.1 KiB
NASM
TITLE PREFIX87 - segment ordering module for assembly programs
|
|
|
|
_CODE segment para public 'BC_CODE'
|
|
_CODE ends
|
|
CSEG segment para public 'CODESG'
|
|
CSEG ends
|
|
CODE segment para public 'CODE'
|
|
CODE ends
|
|
SHELL segment para public 'CODESG'
|
|
SHELL ends
|
|
CLEAR segment para public 'CODESG'
|
|
CLEAR ends
|
|
BC_ICN_CODE segment para public 'INIT_CODE'
|
|
BC_ICN_CODE ends
|
|
BC_IDS_CODE segment para public 'INIT_CODE'
|
|
BC_IDS_CODE ends
|
|
INIT_CODE segment para public 'INIT_CODE'
|
|
INIT_CODE ends
|
|
|
|
; DSEG must come first and not be CONST or _DATA so that other language
|
|
; obj's do not mess with the location of DSEG
|
|
|
|
DSEG segment common 'DATASG'
|
|
DSEG ends
|
|
CONST segment para public 'CONST'
|
|
CONST ends
|
|
_BSS segment word public 'BSS'
|
|
_BSS ends
|
|
c_common segment word public 'BSS'
|
|
c_common ends
|
|
DATA segment para public 'DATA'
|
|
DATA ends
|
|
BC_DATA segment word public 'BC_VARS'
|
|
BC_DATA ends
|
|
named_common segment word common 'BC_VARS'
|
|
named_common ends
|
|
BC_FT segment word public 'BC_SEGS'
|
|
BC_FT ends
|
|
BC_CN segment para public 'BC_SEGS'
|
|
BC_CN ends
|
|
BC_DS segment para public 'BC_SEGS'
|
|
BC_DS ends
|
|
COMMON segment para common 'BLANK'
|
|
COMMON ends
|
|
LAST_SEGMENT segment para public 'LAST_SEGMENT'
|
|
LAST_SEGMENT ends
|
|
DGROUP group DSEG,CONST,_BSS,DATA,BC_DATA,BC_FT,BC_CN,BC_DS,COMMON
|
|
|
|
public __acrtused
|
|
__acrtused equ 1
|
|
|
|
fINT EQU 0CDH
|
|
fFWAIT EQU 09BH
|
|
fESCAPE EQU 0D8H
|
|
fNOP EQU 090H
|
|
fES EQU 026H
|
|
fCS EQU 02Eh
|
|
fSS EQU 036h
|
|
fDS EQU 03Eh
|
|
|
|
BEGINT equ 084h ; QB 3 beginning interrupt
|
|
|
|
|
|
PUBLIC FIWRQQ,FIERQQ,FIDRQQ
|
|
PUBLIC FISRQQ,FJSRQQ,FIARQQ,FJARQQ,FICRQQ,FJCRQQ ; new fixups
|
|
|
|
FIDRQQ EQU (fINT + 256*(BEGINT + 0)) - (fFWAIT + 256*fESCAPE)
|
|
|
|
FIERQQ EQU (fINT + 256*(BEGINT + 8)) - (fFWAIT + 256*fES)
|
|
|
|
FIWRQQ EQU (fINT + 256*(BEGINT + 9)) - (fNOP + 256*fFWAIT)
|
|
|
|
FIARQQ EQU (fINT + 256*(BEGINT + 8)) - (fFWAIT + 256*fDS)
|
|
FJARQQ EQU 256*(((0 shl 6) or (fESCAPE and 03Fh)) - fESCAPE)
|
|
|
|
FISRQQ EQU (fINT + 256*(BEGINT + 8)) - (fFWAIT + 256*fSS)
|
|
FJSRQQ EQU 256*(((1 shl 6) or (fESCAPE and 03Fh)) - fESCAPE)
|
|
|
|
FICRQQ EQU (fINT + 256*(BEGINT + 8)) - (fFWAIT + 256*fCS)
|
|
FJCRQQ EQU 256*(((2 shl 6) or (fESCAPE and 03Fh)) - fESCAPE)
|
|
|
|
END
|