37 lines
728 B
NASM
37 lines
728 B
NASM
TITLE ABSOLUTE - binary program executor helper
|
|
|
|
DATA SEGMENT WORD PUBLIC 'DATA'
|
|
DATA ENDS
|
|
|
|
DGROUP GROUP DATA
|
|
|
|
CODE SEGMENT BYTE PUBLIC 'CODE'
|
|
|
|
ASSUME CS:CODE,DS:DGROUP
|
|
|
|
;***
|
|
; ABSOLUTE - Helper for calling BASIC interpreter assembly routines
|
|
;
|
|
; Just used to clear information from the stack to various registers and
|
|
; memory locations.
|
|
;***
|
|
|
|
PUBLIC ABSOLUTE
|
|
|
|
ABSOLUTE PROC FAR
|
|
|
|
POP DI ;return offset
|
|
POP SI ;return segment
|
|
POP BX ;address of routine offset
|
|
PUSH SI ;restack return segment
|
|
PUSH DI ;restack return offset
|
|
PUSH DS:[0] ;stack DEF SEG segment
|
|
PUSH [BX] ;stack routine offset
|
|
RET ;far return to start of called routine
|
|
|
|
ABSOLUTE ENDP
|
|
|
|
CODE ENDS
|
|
|
|
END
|